LCD 2004 dengan I2C Arduino
Pada postingan kali ini penulis akan membuat tutorial cara menghubungkan LCD 20x4 atau LCD 2004 dengan IC I2C pada Arduino. Pada kesempatan kali ini Penulis menggunakan alat atau peralatan sebagai berikut.
LCD 20x4 atau LCD 2004
|
Untuk pengimplementasiannya I2C ini menggunakan Address untuk dihubungkan ke Arduino. Langsung saja, berikut cara-cara yang diperlukan untuk menggunakan I2C LCD 2004 kali ini.
Hal yang pertama dilakukan adalah menghubungkan rangkaian LCD 2004 I2C dengan Arduino. Konfigurasi pin I2C dan Arduino adalah sebagai berikut.
I2C Arduino UNO I2C Arduino Mega
GND ----- GND GND ----- GND
VCC ----- 5V VCC ------ 5V
SDA ----- A4 SDA ----- 20
SCL ------ A5 SCL ----- 21
1. Scan Address I2C
Pertama, hal yang harus dilakukan adalah scan Address I2C yang dimiliki, walaupun biasanya Address yang digunakan adalah 0x27 namun ada juga beberapa yang menggunakan Address 0x3F. Sketch yang digunakan untuk scan adalah sebagai berikut.
Sketch:
//Pertama sertakan library Wire.h #include <Wire.h> void setup() { Serial.begin (9600); // Leonardo: wait for serial port to connect while (!Serial) { } Serial.println (); Serial.println ("I2C scanner. Scanning ..."); byte count = 0; Wire.begin(); for (byte i = 8; i < 120; i++) { Wire.beginTransmission (i); if (Wire.endTransmission () == 0) { Serial.print ("Found address: "); Serial.print (i, DEC); Serial.print (" (0x"); Serial.print (i, HEX); Serial.println (")"); count++; delay (1); // maybe unneeded? } // end of good response } // end of for loop Serial.println ("Done."); Serial.print ("Found "); Serial.print (count, DEC); Serial.println (" device(s)."); } // end of setup void loop() {}Buka Serial Monitor pada Arduino IDE untuk melihat hasil Address atau alamat I2C yang terbaca.
Hasil pada serial monitor:
I2C scanner.Scanning . . . Found address: 63 (0x3F) Done. Found 1 device(s).
Jika tampilan diatas muncul pada Serial Monitor, berarti proses scan address berhasil dan Address I2C yang terbaca adalah 0x3F.
2. Sketch LCD 2004 atau LCD 20x4 dengan I2C
Setelah melakukan scanning address pada IC I2C selanjutnya masuk ke Sketch Arduino untuk menampilkan karakter ke LCD 2004 atau LCD 20x4.
Hal yang dibutuhkan adalah Library untuk LCD tersebut. Library dapat didownload disini. Atau bisa di download pada menu Download.Setelah Library sudah didownload, import atau masukkan ke Arduino IDE dengan klik Sketch --> Include Library --> Add .ZIP Library... dan pilih library yang telah didownload tadi. Kemudian, setelah input library selanjutnya adalah memasukan atau membuat sketch pada Arduino IDE. Sketch LCD 2004 untuk arduino adalah sebagai berikut.
Sketch:
/*-----( Masukan Library yang dibutuhkan )-----*/ #include <Wire.h> // Comes with Arduino IDE #include <LiquidCrystal_I2C.h> /*-----( Deklarasi Konstanta )-----*/ /*-----( Deklarasi Objek )-----*/ // Konfigurasi LCD address ke 0x3F untuk tampilan 20 karakter dan 4 baris // Atur pin pada I2C chip untuk koneksi ke LCD: // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Atur LCD I2C address /*-----( Deklarasi Variabel )-----*/ void setup() /*----( SETUP: RUNS ONCE )----*/ { Serial.begin(9600); // Mengaktifkan serial lcd.begin(20,4); // inisialisasi LCD dengan 20 karakter dan 4 baris // ------- Melakukan blink 3 kali (Opsional) ------------- for(int i = 0; i< 3; i++) { lcd.backlight(); delay(250); lcd.noBacklight(); delay(250); } lcd.backlight(); // Diakhiri dengan backlight on //-------- Menulis/menampilkan karakter pada LCD ------------------ // CATATAN: Posisi Kursor: Baris dan Karakter mulai pada 0 lcd.setCursor(3,0); //Huruf akan mulai pada karakter ke 4 dan baris 0 pada LCD lcd.print("Hello, world!"); delay(1000); lcd.setCursor(2,1); lcd.print("From YourHand"); delay(1000); lcd.setCursor(0,2); lcd.print("20 by 4 Line Display"); lcd.setCursor(0,3); delay(2000); lcd.print("GOOD DAY"); delay(8000); // Tunggu selama 8 detik untuk dapat mengetik karakter pada serial monitor lcd.setCursor(0,0); //Mulai dari Karakter 0 dan baris 0 lcd.print("Start Serial Monitor"); lcd.setCursor(0,1); lcd.print("Type chars 2 display"); }/*--(end setup )---*/ void loop() /*----( LOOP: DIEKSEKUSI TERUS MENERUS )----*/ { { // ketika karakter datang dari serial port... if (Serial.available()) { // delay untuk menunggu pesan ditulis pada serial delay(100); // Menghapus layar lcd.clear(); // Membaca semua karakter yang diketik pada serial monitor while (Serial.available() > 0) { // menampilkan setiap karakter ke lcd lcd.write(Serial.read()); } } } }/* --(end main loop )-- */
Sekian share tentang LCD 2004 atau LCD 20x4 dengan menggunakan I2C dan melakukan scan address I2C. Semoga bermanfaat.
Referensi : arduino-info.wikispaces.com
www.arduino.cc