Digital Text Board merupakan salah satu media elektronik yang sering digunakan untuk memberikan informasi yang digunakan dalam dunia advertising, industri, lembaga pemerintahan, pendidikan dll.
Digital Text Board adalah Sebuah layanan informasi berbasis digital satu arah. Komponen sebuah Digital Text Board teridiri dari serangkaian rangkaian elektronik yang terintegrasi menjadi satu sehingga dapat menampilkan layanan informasi berupa data/text.
Pengontrolan Digital Text Board ini menggunakan koneksi Bluetooth untuk menghubungkan perangkat android ke arduino, kamu hanya perlu membuka Aplikasi Digital Text Board dan merubah text hanya dari aplikasi.
Pengontrolan otomatisasi alat ini menggunakan Arduino Uno R3 board mikrokontroller berbasis ATmega328 dengan 14 pin digital input/output sebagai pemrosesan data dan Modul Master Slave HC-05 Integrated Bluetooth sebagai interface perangkat Android dengan alat yang dibuat.
HC-05 adalah sebuah modul Bluetooth SPP (Serial Port Protocol) yang mudah digunakan untuk komunikasi serial wireless (nirkabel) yang mengonversi port serial ke Bluetooth. HC-05 menggunakan modulasi Bluetooth V2.0+ EDR (Enchanced Data Rate) 3 Mbps dengan memanfaatkan gelombang radio berfrekuensi 2,4 GHz. Sedangkan data/text akan ditampilkan di LED berbasis DOT MATRIX yang banyak di pakai untuk media informasi berupa text.
Dalam perancangan Digital Text Board ini memiliki beberapa komponen yang harus dipersiapkan, diantaranya adalah:
HARDWARE
- LED MAX7219 Dot Matrix 8x8,
- HC-05 Bluetooth Module,
- Arduino Board.
- IDE Arduino, untuk membuat program
- App Inventor, untuk mendesain aplikasi
- Fritzing, untuk mendesain skematik
DIAGRAM
Berikut adalah diagram blok yang dipakai dalam pembuatan Digital Text Board:
Blok Diagram
Diagram diatas menjelaskan bahwa teks berjalan dikendalikan dari jarak jauh dan dapat memperbarui informasi melalui aplikasi Android.
Arduino akan menjalankan fungsi loop yang menampilkan informasi berupa string char. Ketika ada interupsi yang berupa koneksi dan adanya informasi baru lewat bluetooth serial, maka informasi baru yang berasal dari perangkat Android akan dieksekusi terlebih dahulu, dan setelah selesai, Arduino akan menjalankan kembali menampilkan rutin program informasi karakter yang masuk. Interupsi Android dapat berupa update informasi teks berjalan yang ditampilkan, tetapi bisa juga perintah untuk mengubah laju kecepatan Digital Text Board, kecerahan dan perulangan menampilkan pesan.
DRIVER
Pada perancangan alat ini yang digunakan adalah driver MAX7219 untuk LED Dot Matrix. Driver MAX7219 ini menggunakan IC yang mampu mengontrol 64 LED sekaligus dengan hanya menggunakan 3 kabel data untuk komunikasi dengan Arduino, rangkaian Driver bisa dilihat seperti pada gambar dibawah ini:
Schematic Driver LED Dot Matrix |
Dari rangkaian diatas diketahui diketahui bahwa 64 LED dikontrol oleh 16 pin output dari IC. Sementara jumlah maksimum LED menyala pada saat yang sama sebenarnya adalah delapan. LED diatur sebagai 8×8 set baris dan kolom. Jadi, MAX7219 mengaktifkan setiap kolom untuk waktu yang sangat singkat dan pada saat yang sama juga mengontrol penyalaan LED setiap baris.
Dot Matrix Display |
Untuk lebih lengkapnya, baca artikel dibawah ini:
Baca:
SCHEMATIC
Sebelum merangkai rangkaian schematic, yang harus dipersiapkan adalah LED MAX7219 Dot Matrix 8x8 yang 4 chanel, seperti gambar berikut:
Dot Matrix4 Chanel |
Kemudian potonglah board komponen LED diatas menjadi 4 bagian, tentunya LED harus dilepas terlebih dahulu dari socket board-nya, lihat gambar berikut:
Bagian LED yang Dipotong |
Setelah dipotong, Hubungkanlah bagian Board dengan menggunakan kabel jumper, perhatikan gambar berikut:
Pin Socket |
Keseluruhan board yang sudah dihubungkan seperti berikut:
Rangkaian |
Selanjutnya, rangkailah seluruh komponen seperti gambar berikut:
Schematic |
No | Pin Bluetooth | Pin Arduino |
---|---|---|
1 | VCC | VCC |
2 | GND | GND |
3 | TXD | RXD |
4 | RXD | TXD |
No | Pin LED MTX | Pin Arduino |
1 | VCC | VCC |
2 | GND | GND |
3 | DIN | 7 |
4 | CLK | 6 |
5 | CS | 5 |
Modul bluetooth yang digunakan adalah HC-05 Bluetooth Module, bisa juga menggunakan jenis bluetooth type HC-06. Untuk serial komunikasi bluetooth dengan Arduino bisa di lihat pada artikel dibawah ini:
Baca:
- Bluetooth HC-05 Interfacing with Arduino
SOURCE CODE
ssss
Upload program ke Arduino dengan menggunakan IDE Arduino. Library Max Matrix nya jangan sampai lupa, download DISINI
Perhatikan Script berikut:
#include <MaxMatrix.h>
#include <SoftwareSerial.h>
#include <avr/pgmspace.h>
PROGMEM const unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};
int dIn = 7; // DIN pin of MAX7219 module
int clk = 6; // CLK pin of MAX7219 module
int cs = 5; // CS pin of MAX7219 module
int maxInUse = 4; // Number of MAX7219's connected
MaxMatrix m(dIn, cs, clk, maxInUse);
SoftwareSerial Bluetooth(rx, tx); // Bluetooth
byte buffer[10];
char incomebyte;
int scrollSpeed = 100;
char text[100] = "ARI SEPTIAWAN "; // Initial text message
int brightness = 15;
int count = 0;
char indicator;
void setup() {
m.init(); // MAX7219 initialization
m.setIntensity(brightness); // initial led matrix intensity, 0-15
Bluetooth.begin(9600); // Default communication rate of the Bluetooth module
}
void loop() {
// Printing the text
printStringWithShift(text, scrollSpeed);
if (Bluetooth.available()) { // Checks whether data is comming from the serial port
indicator = Bluetooth.read(); // Starts reading the serial port, the first byte from the incoming data
// If we have pressed the "Send" button from the Android App, clear the previous text
if (indicator == '1') {
for (int i = 0; i < 100; i++) {
text[i] = 0;
m.clear();
}
// Read the whole data/string comming from the phone and put it into text[] array.
while (Bluetooth.available()) {
incomebyte = Bluetooth.read();
text[count] = incomebyte;
count++;
}
count = 0;
}
// Adjusting the Scrolling Speed
else if (indicator == '2') {
String sS = Bluetooth.readString();
scrollSpeed = 150 - sS.toInt(); // Milliseconds, subtraction because lower value means higher scrolling speed
}
// Adjusting the brightness
else if (indicator == '3') {
String sB = Bluetooth.readString();
brightness = sB.toInt();
m.setIntensity(brightness);
}
}
}
void printCharWithShift(char c, int shift_speed) {
if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(32, 0, buffer);
m.setColumn(32 + buffer[0], 0);
for (int i = 0; i < buffer[0] + 1; i++)
{
delay(shift_speed);
m.shiftLeft(false, false);
}
}
void printStringWithShift(char* s, int shift_speed) {
while (*s != 0) {
printCharWithShift(*s, shift_speed);
s++;
}
}
void printString(char* s)
{
int col = 0;
while (*s != 0)
{
if (*s < 32) continue;
char c = *s - 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(col, 0, buffer);
m.setColumn(col + buffer[0], 0);
col += buffer[0] + 1;
s++;
}
}
Upload program ke Arduino dengan menggunakan IDE Arduino. Library Max Matrix nya jangan sampai lupa, download DISINI
Perhatikan Script berikut:
byte Buf7219[7]; // "width,height,data[5]" single character buffer.
int dIn = 7; // DIN pin of MAX7219 module
int clk = 6; // CLK pin of MAX7219 module
int cs = 5; // CS pin of MAX7219 module
int maxDisplays = 4; // Number of MAX7219's connected
char data = 0;
MaxDisplay disesuaikan dengan jumlah LED. Jika tidak, maka LED akan hidup sesuai dengan jumlah MaxDisplay yang digunakan.Kamu juga bisa menambah LED Matrix berapapun, tinggal disesuaikan dengan MaxDisplay programnya.
Dibawah ini merupakan program text berjalan saat pertama kali Digital Text Board dihidupkan.
byte buffer[10];
char incomebyte;
int scrollSpeed = 100;
char text[100] = "ARI SEPTIAWAN "; // Initial text message
int brightness = 15;
int count = 0;
char indicator;
Succes |
Perancangan algoritma pemrograman Android ini tidak perlu berhadapan dengan bahasa pemrograman yang rumit. Dengan memanfaatkan App Inventor, kamu bisa merancang sebuah aplikasi android yang nantinya akan digunakan untuk mengakses Digital Text Board. Aplikasi "Digital Text Board" yang digunakan untuk menulis update data ditampilkan seperti yang ditunjukkan dalam Gambar dibawah ini:
Nyalakan Digital Text Board. Maka, LCD Dot Matrix akan menyala dan akan menampilkan tampilan awal yang telah di program sebelumnya.
Sambungkan bluetooth handphone dangan modul bluetooth, pada aplikasi android pilih “CONNECT”. Seperti gambar dibawah ini:
3. Kemudian, pilih salah satu dari tipe bluetooth yang sesuai dengan modul bluetooth.
4. Jika bluetooth sudah tersambung maka ada tulisan “Terhubung” pada aplikasi android yang akan memberi tahu bahwa bluetooth telah tersambung dan siap dikirimkan text.
5. Setelah terhubung, selanjutnya ketik text pada aplikasi.
6. Pilih “Kirim” dan text akan tampil di LCD Dot Matrix.
DONE...!
VIDEONYA INSYA ALLAH MENYUSUL.
Semoga bermanfaat, Silahkan SHARE dan tinggalkan Komentar.
Jendela Components App Inventor |
Download:OPERATION
Arduino_8x8_LED_Matrix.apk (Download)Arduino_8x8_LED_Matrix.aia (Download)
Nyalakan Digital Text Board. Maka, LCD Dot Matrix akan menyala dan akan menampilkan tampilan awal yang telah di program sebelumnya.
Sambungkan bluetooth handphone dangan modul bluetooth, pada aplikasi android pilih “CONNECT”. Seperti gambar dibawah ini:
Tampilan Awal Aplikasi |
Koneksi Bluetooth |
Koneksi Bluetooth |
6. Pilih “Kirim” dan text akan tampil di LCD Dot Matrix.
HASIL |
VIDEONYA INSYA ALLAH MENYUSUL.
Semoga bermanfaat, Silahkan SHARE dan tinggalkan Komentar.
Mantab artikelnya.
ReplyDeleteDicoba dulu min, nanti kalau ada kesulitan mohon dibantu ya.
Dengan senang hati,
ReplyDeleteSilahkan
#include....
ReplyDelete#include....
2library kosong diatas yang di masukkan library apa?....
#include
Delete#include
#include ...MaxMatrix.h
Delete#include ...avr/pgmspace.h...
library dapat di download pada keterangan program.