ARDUINO LCD LCD (Liquid Crystal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. Bahan Material LCD Bahan LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekulmolekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan. Bentuk LCD PERENCANAAN Gambar LCD 16x2 Gambar LCD 8x2 Gambar LCD 16x4 www.sekolahrobot.co.id
KONFIGURASI LCD ARDUINO Pin LCD nomor 4 (RS) merupakan Register Selector yang berfungsi untuk memilih Register Kontrol atau Register Data. Register kontrol digunakan untuk mengkonfigurasi LCD. Register Data digunakan untuk menulis data karakter ke memori display LCD. PIN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Nama Keterangan GND Ground VCC <= +5V VEE Tegangan kontras LCD RS Register Select R/W 1=Read, 0=Write E Enable Clock LCD D0 Data Bus 0 D1 Data Bus 1 D2 Data Bus 2 D3 Data Bus 3 D4 Data Bus 4 D5 Data Bus 5 D6 Data Bus 6 D7 Data Bus 7 Anoda Tegangan Backlight + Katoda Tegangan Backlight - Pin LCD nomor 5 (R/W) digunakan untuk memilih aliran data apakah READ ataukah WRITE. Karena kebanyakan fungsi hanya untuk membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini dihubungkan ke GND (WRITE). Pin LCD nomor 6 (ENABLE) digunakan untuk mengaktifkan LCD pada proses penulisan data ke Register Kontrol dan Register Data LCD. Pin data (D0 - D7) adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit. KONFIGURASI KE ARDUINO Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12 Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11 Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5 Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4 Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3 Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2 sambungkan potensio 10 KOhm ke +5v dan GND, dan Pin LCD 3 ke potensio Pin 5 (R/W) ke Ground www.sekolahrobot.co.id
PEMROGRAMAN HELLO WORD LCD Biar langsung mencoba, mari membuat hello word dengan susunan konfigurasi sesuai yang dilakukan sebelumnya. #include < LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); lcd. begin(16, 2); lcd. setcursor(0, 0); lcd. print( "Hello Word" ); lcd. setcursor(0, 1); lcd. print( "sekolahrobot ); Selain menggunakan komunikasi langsung LCD dengan arduino, ada cara lagi dengan menggunakan komunikasi I2C, kelebihan dari I2C ini adalah menghemat pin kabel, sehingga pin-pin digital yang tadinya digunakan untuk display LCD bisa digunakan untuk keperluan lain. Adapun pin yang dibutuhkan untuk LCD I2C ini adalah pin SDA (A4) dan SCL(A5) BAHAN YANG DIBUTUHKAN LCD I2C i2c modul LCD perintah #include < liquidcrystal.h> merupakan pemanggilan library LCD. untuk library ini sudah ada pada waktu install arduino, jadi tidak perlu di tambahi lagi. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); setting pin sesuai dengan konfigurasi pada halaman sebelumnya. LCD 16X2 Setelah bahan sudah ada, solder antara I2C modul LCD dengan LCD seperti gambar dibawah ini lcd. begin(16, 2); memulai LCD dengan character 16 kolom 2 baris lcd. setcursor(0, 0); meletakkan kursor baris ke 0 dan kolom ke 0. lcd. print ("Hello Word" ); print tulisan di LCD mulai baris ke 0 dan kolom ke 0 Sambungkan 4 buah pin yang ada di i2c LCD dengan arduino, dengan susunan seperti berikut ini : i2c LCD GND VCC SDA SCL GND 5V A4 A5 Arduino
Karena menggunakan komunikasi i2c maka yang perlu diketahui adalah alamat dari i2c yang di modul i2c LCD, perlu diketahui masing-masing produksimdul i2c LCD memiliki alamat sendiri-sendiri yang berbeda. Untuk mengetahui bisa menggunakan cara seperti dibawah ini, (pastikan semua sudah tersambung ke arduino) Setelah di upload pada arduino, bisa dilihat di serial monitor untuk mengetahui address i2c yang ada pada i2c modul LCD #include < Wire.h> Wire.begin(); Serial.begin(9600); Serial.println( "\ni2c Scanner" ); byte error, address; int ndevices; Serial.println( "Scanning..."); ndevices = 0; for(address = 1; address < 127; address++ ) Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) Serial.print( "I2C device found at address 0x" ); if (address<16) Serial.print( "0"); Serial.print(address, HEX); Serial.println( "!"); ndevices++; else if (error==4) Serial.print( "Unknow error at address 0x" ); if (address<16) Serial.print( "0"); Serial.println(address, HEX); if (ndevices == 0) Serial.println( "Not found\n" ); else Serial.println( "done\n"); Seperti pada hasil diatas berarti i2c LCD beralamatkan di 0x3F DOWNLOAD LIBRARY I2C LCD Download i2c modul untuk library yang akan digunakan, bisa didownload di https://bitbucket.org/fmalpartida/newliquidcrystal download file LiquidCrystal_V1.2.1.zip extract pada folder Library pada installan arduino. Jikalau ditemukan nama folder yang sama, bisa di rename salah satunya delay(5000); atau bisa di lihat di http://playground.arduino.cc/main/i2cscan ner
PEMROGRAMAN HELLO WORD i2c LCD #include < Wire.h> #include < LCD.h> #include < LiquidCrystal_I2C.h> #define I2C_ADDR 0x3F //alamat #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 int n = 1; LiquidCrystal_I2C lcd(i2c_addr,en_pin,rw_pin,rs_pin,d4_ pin,d5_pin,d6_pin,d7_pin); lcd. begin (16,2); lcd.setbacklightpin(backlight_pin,po SITIVE); lcd.setbacklight( HIGH); lcd. home (); lcd. print( "helloword"); lcd. setcursor (0,1); lcd. print(n++, DEC); lcd.setbacklight( LOW); delay(3000); lcd.setbacklight( HIGH); delay(3000);