Graphic LCD adalah LCD dengan banyak dot atau pixel. Jadi
penanganannya berbeda dengan LCD character. LCD character kita tulis perkotak
karakternya, kalau LCD graphic kita tulisnya perdot. keren kan.
Sebenarnya Uda belum punya banya pengalaman tentang pemprograman
pada Graphic LCD, tapi ga pa pa lah kalau kita coba membahasnya disini.
Seperti biasa setiap peralatan yang kita pakai di arduino, kita
gunakan library sesuai dengan hardware yang kita gunakan. Ada banyak library
yang bisa kita pakai untuk graphic LCD seperti openGLCD, GLCD, U8GLIB dan
U8G2.
Tapi karna Uda biasa menggunakan Graphic LCD ST7920 maka hanya
U8Glib yang bisa menghandle nya. yang lain hanya untuk chipset KS1080 dan
lainnya. U8GLib dapat menghandle banyak chipset graphic LCD.
Graphic LCD ke banyakan di
indonesia adalah GLCD dengan chipset ST7920. Maka kita fokus ke GLCD ini aja ya
bray...
Malasah pertama tentunya koneksi arduino dengan GLCD ST7920
ini. Ada dua cara juga untuk instalasinya, yaitu dengan cara serial dan paralel.
Cara pemasangannya ada kok di example programnya u8glib itu sendiri.
//U8GLIB_ST7920_128X64_1X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_128X64_4X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_128X64_1X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_128X64_4X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_192X32_1X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_192X32_4X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_192X32_1X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_192X32_4X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_192X32_1X
u8g(13, 11, 10); // SPI Com: SCK
= en = 13, MOSI = rw = 11, CS = di = 10
//U8GLIB_ST7920_192X32_4X
u8g(10); //
SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI
//U8GLIB_ST7920_202X32_1X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_202X32_4X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
//U8GLIB_ST7920_202X32_1X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
//U8GLIB_ST7920_202X32_4X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
Kita tinggal menghilangkan tanda “//”
di samping . dan pin ini sepertinya cocok un
tuk arduino MEGA. Kalua kita pasang
di arduino UNO, ya kita tinggal robah pinnya sesuai inisial pin di sebelahnya.
Uda contohin nih. Misalnya kita mau pasang secara serial pada arduino UNO. Urutan
keempat ya konfigurasinya.
//U8GLIB_ST7920_128X64_4X
u8g(18, 16, 17); // SPI Com: SCK
= en = 18, MOSI = rw = 16, CS = di = 17
Kita tinggal robah pin SCK,MOSI,CS sesuai dengan ISPnya
arduino UNO
U8GLIB_ST7920_128X64_4X
u8g(13, 11, 10); // arduino pin 13 ke glcd EN, arduino pin 11 ke glcd RW, arduino pin 10 ke glcd DI
Kalau untuk paralel seperti urutan ke dua
//U8GLIB_ST7920_128X64_4X
u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16);
// 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16
Ya tinggal robah sesuai urutan // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18,
di=17,rw=16 Ya menjadi
U8GLIB_ST7920_128X64_4X
u8g(2, 3, 4, 5, 6, 7, 8, 9, 13, 11, 10);
Lha... tinggal pin 0, 1, 12 aja. Dikit amat... g bisa nginputin
apa2 dong di arduino Uno nya. Makanya bray kita pilih serial aja tuh untuk
konekin ke arduino UNO. Yang Uda coba pakai arduino Mega kalau pakai 8 bit sih
lancar jaya. Dengan banyak pin yang di sisain.
Sekarang metode penulisan sketchnya ya. Library ini memiliki 2
metode penulisan. Pertama langsung di tulis di looping program, yang kedua di
tulis di inisialisasi program. Ni contoh penulisannya...
Langsung di tulis di looping.
#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(13, 11, 10); // arduino pin 13 ke glcd EN, arduino pin 11 ke glcd RW, arduino pin 10 ke glcd DI
void setup(void) {
}
void loop(void) {
u8g.firstPage();
do {
u8g.setFont(u8g_font_helvB08);
u8g.drawStr( 44, 9, "Hallo Bray");
} while( u8g.nextPage() );
delay(200);
}
}
atau kita panggil dari inisialisasi program seperti ini
#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(13, 11, 10); // arduino pin 13 ke glcd EN, arduino pin 11 ke glcd RW, arduino pin 10 ke glcd DI
void draw(void) {
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 0, 22, "Hallo Bray”);
}
void setup(void) {
}
void loop(void) {
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
delay(200);
}
Sepertinya segitu dulu deh bray. Uda dah ngantuk. Besok-besok
kita sambung lagi masih dengan grapich LCD. Soal gambar pemasangan menyusul ya Bray