Running text atau terkadang disebut sebagaiRunning Text LED merupakan media elektronik yang dapat menampilkan tulisan berjalan dan animasi yang biasanya menggunakan lampu LED, maka dari itulah terkadang disebut sebagai Running Text LED.

Alat yang dibutuhkan :
  1. 1x Arduino UNO
  2. 1x Bluetooth modul HC-06 / HC-05
  3. LED Matrix 16x32
  4. Kabel jumper secukupnya
  5. Smartphone Android
  6. Library DMD dan TimerOne
  7. Download Aplikasi Android disini
Susunan Kabel :

  • Pin RX pada Arduino dihubungkan ke TXD modul Bluetooth
  • Pin TX pada Arduino dihubungkan ke RXD modul Bluetooth
Sketch:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
 
#define DISPLAYS_ACROSS 2
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);
#define max_char 1000
char message[max_char];
char r_char;
byte index = 0;
int i;
 
void ScanDMD() {
  dmd.scanDisplayBySPI();
}
 
void setup(void) {
  Timer1.initialize( 5000 );
  Timer1.attachInterrupt( ScanDMD );
  dmd.clearScreen( true );
  Serial.begin(9600);
}

void loop(void) {
  if(Serial.available()){
    for(i=0; i<99; i++){
    message[i] = '\0';
  }
  index=0;
}
   while(Serial.available() > 0){
    if(index < (max_char-1)) {
      r_char = Serial.read();
      message[index] = r_char;
      index++;
      message[index] = '\0';
  }
}
   dmd.clearScreen( true );
   dmd.selectFont(Arial_black_16);
   
   dmd.drawMarquee(message, max_char,(32*DISPLAYS_ACROSS)-1 ,0);
   long start=millis();
   long timer=start;
   boolean ret=false;
   while(!ret){
   
   if ((timer+30) < millis()) {
     ret=dmd.stepMarquee(-1,0);
     timer=millis();
   }
  }
}