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. Bentuk LCD 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 PERENCANAAN Gambar LCD 16x2 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 Gambar LCD 8x2 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 Gambar LCD 16x4 ditampilkan.
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 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
Nama
Keterangan
1
GND
Ground
2
<= VCC
+5V
3
VEE
Tegangan kontras LCD
4
RS
5
R/W
1=Read, 0=Write
6
E
Enable Clock LCD
7
D0
Data Bus 0
8
D1
Data Bus 1
9
D2
Data Bus 2
KONFIGURASI KE ARDUINO
10
D3
Data Bus 3
Ÿ Pin RS (kaki 4) di sambungkan dengan pin
11
D4
Data Bus 4
12
D5
Data Bus 5
13
D6
Data Bus 6
14
D7
Data Bus 7
15
Anoda
Tegangan Backlight +
16
Katoda
Tegangan Backlight -
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
Register Select
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.
Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ
www.sekolahrobot.co.id
PEMROGRAMAN HELLO WORD LCD Biar langsung mencoba, mari membuat hello word dengan susunan konfigurasi sesuai yang dilakukan sebelumnya.
sketch
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
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
void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Hello Word"); lcd.setCursor(0, 1); lcd.print("sekolahrobot”); }
i2c modul LCD
void loop() { }
perintah #include < liquidCr ystal .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
Arduino GND
VCC
5V
SDA
A4
SCL
A5
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
sketch
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("\nI2C Scanner"); } void loop() { 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"); delay(5000); }
atau bisa di lihat di http://playground.arduino.cc/Main/I2cScan ner
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 http://sekolahrobot.com/download/Arduino -LiquidCrystal-I2C-library-master.zip download file Arduino-LiquidCrystal-I2Clibrary-master .zip extract pada folder Library pada installan arduino. Jikalau ditemukan nama folder yang sama, harus dipindahkan keluar dari folder library atau dihapus terlebih dulu,setelah itu masukan folder library i2C yang sudah di download dari link di atas ke dalam folder Libraries Arduino
PEMROGRAMAN HELLO WORD i2c LCD sketch
#include <Wire.h> #include // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { // initialize the LCD lcd.begin(); lcd.print("Hello, world!"); delay (1000); lcd.setCursor(0,1); lcd.print("Test Backlight delay (1000);
");
for (int i=0; i<5; i++){ lcd.noBacklight(); delay(200); lcd.backlight(); delay(200);} lcd.setCursor(0,1); lcd.print("Test noDisplay"); delay (1000); for (int i=0; i<5; i++){ lcd.noDisplay(); delay(200); lcd.display(); delay(200);} lcd.setCursor(0,1); lcd.print("Test UL Cursor "); delay (1000); for (int i=0; i<5; i++){ lcd.cursor(); delay(500); lcd.noCursor(); delay(500);} lcd.setCursor(0,1); lcd.print("Test BL Cursor "); delay (1000); for (int i=0; i<5; i++){ lcd.blink(); delay(500); lcd.noBlink(); delay(500);} lcd.setCursor(0,1); lcd.print("Test Text Scroll"); delay (1000); lcd.setCursor(0,0); lcd.print("Hello, world!"); for (int i=0; i<16; i++){ lcd.scrollDisplayRight(); delay(200);} } void loop(){}
1. lcd.begin(); fungsi : Memulai LCD / inisialisasi LCD Module untuk segera digunakan, posisi penempatan void ini di awal Void Setup 2. lcd.backlight(); & lcd.noBacklight(); fungsi : Menyalakan atau mematikan Lampu Backlight pada LCD Modul 3. lcd setCursor(uint8_t col, uint8_t row); fungsi : Menempatkan posisi Cursor awal display default value : (0,0) artinya jika kita tidak menggunakan fungsi setCursor maka data akan ditampilkan pada posisi (0,0) kolom 0/pertama baris 0/pertama 4. lcd.print(data); & lcd.write(data); fungsi : Menampilkan Value/data ke dalam lcd module 5.lcd.clear(); fungsi : Menghapus semua value/data/text yang sedang ditampilkan di layar lcd 6. lcd.display(); & lcd.noDisplay(); fungsi : Menampilkan atau tidakmenampilkan data pada display (tanpa menghapusnya). Apabila kita menggunakan fungsi noDisplay(); maka data/text yang ada di layar akan menghilang tetapi tidak terhapus dan dapat ditampilkan lagi dengan fungsi display(); 7. lcd.cursor(); & lcd.noCursor(); fungsi : Menampilkan atau menyembunyikan Underline Cursor pada layar LCD. default value : lcd.noCursor(); 8. lcd.blink(); & lcd.noBlink(); fungsi : Menampilkan atau menyembunyikan Blinking Box Cursor pada layar LCD. 9. lcd.scrollDisplayLeft(); & lcd.scrollDisplayRight(); fungsi : Menampilkan display secara scroll/running/bergeser posisinya tanpa mengubah RAM. Penggunaan Void ScrollDisplayRight/Left harus diawali dengan void lcd.setCursor 10. lcd.leftToRight(void) & lcd.rightToLeft(void) fungsi : Menentukan Orientasi arah Text pada Display
PROJECT Ÿ
Ÿ
Siapkan potensiometer dan Led, buatlah sketch pemrograman arduino dan tampilkan nilai dari potensiometer ke LCD dan apabila nilai potensiometer lebih dari 900 led akan menyala. selain tampil di LCD tampilkan nilai dan led tersebut kedalam serial monitor juga