ESP32 PART-7. Kontrol LCD pada Modul I2C
Agar tampilan project arduino lebih menarik maka bisa menggunakan display LCD (Liquid Crystal Display).
LCD merupakan suatu prangkat output yang bisa menampilkan karakter atau gambar. Teknologi LCD menggunakan Kristal cair, sehingga dengan teknologi tersebut maka display bisa diubah lebih tipis di banding menggunakan display teknologi lama yaitu tabung gambar sinar katoda (CRT = Cathode Ray Tube). LCD banyak digunakan pada layar Handphone, Laptop, jam tangan, televisi dll.Dalam artikel ini
kita tidak menggunakan LCD besar tetapi cukup LCD kecil yaitu LCD 16X2 hal ini
kita sesuaikan sebagai dasar pengenalan LCD. LCD 16X2 memiliki 2 baris yang
tiap-tiap baris bisa memuat 16 karakter di bagian atas dan 16 karakter di
bagian bawah. Bentuk LCD 16x2 bisa dilihat pada gambar di bawah ini :
Susunan pin dan keterangannya
bisa dilihat pada tabel di bawah ini :
No. Pin | Nama pin | Keterangan |
---|---|---|
1 | VSS | Di hubungkan ke groud |
2 | VDD | catu daya positif |
3 | V0 | Pengatur kontras. Potensiometer bisa digunakan untuk mengatur tingkat kontras |
4 | RS | Register select (RS = HIGH untuk mengirim data dan RS = LOW untuk mengirim instruksi |
5 | R/W | Read/Write control bus (R/W = HIGH untuk membaca data di LCD) |
6 | E | Data Enable = HIGH supaya LCD dapat di akses |
7 | DB0 | Data |
8 | DB1 | Data |
9 | DB2 | Data |
10 | DB3 | Data |
11 | DB4 | Data |
12 | DB5 | Data |
13 | DB6 | Data |
14 | DB7 | Data |
15 | BLA | catu daya + untuk layar |
16 | BLK | catu daya - untuk layar |
Jadi saat menghubungkan LCD dengan mikrokontroller (Arduino atau mikrokontroller lainnya) maka harus menghubungkan 16 pin paralel tersebut, Tentunya dengan menghubungan 16 kabel LCD ke Arduino terlihat tidak praktis dengan kabel yang rumit. Seperti gambar dibawah ini :
Untuk mengatasi kabel LCD yang banyak dan rumit maka dikembangkan modul IIC atau ada yang menamakan I2C. Singkatan IIC adalah inter Integrated Circuit. Dengan modul I2C maka komunikasi antara ESP32 dengan LCD bisa dilakukan transfer data dengan system serial singkron. Dengan sistem ini maka bisa menghemat banyak kabel.
I2C yang kita gunakan adalah I2C LCD 1602A, bentuknya bisa dilihat pada gambar di bawah ini:
Cara pemasangan modul I2C pada LCD bisa di lihat pada gambar di bawah ini :
Jadi untuk menghubungkan I2C LCD dengan ESP32 kita sambungkan kabel dari GPIO22 ke pin SCL (modul I2C) dan GPIO21 ke pin SDA (modul I2C). sedangkan pin 5 Volt dan ground I2C bisa dihubungkan dengan 5 volt (Vin ESP32) dan ground pada board ESP32. Untuk mengatur kecerahan LCD bisa diputar potensimeter pada modul I2C.
Untuk sketch programnya kita harus
menambah library I2C terlebih dahulu ke dalam aplikasi arduino IDE. Setelah
librarynya dimasukkan maka silahkan ketik program seperti dibawah ini :
Program
/***********************************************
Program dasar
IIC pada LCD
Oleh : Hendry
Kurniawan,S.Pd
***********************************************/
#include <LiquidCrystal_I2C.h> // Memasukkan library untuk I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Alamat default I2C adalah 0x27 menggunakan
LCD 16x2
void setup() {
lcd.init(); // inisialisasi lcd
lcd.backlight(); //
Menyalakan lampu belakang
lcd.clear(); //
menghapus tampilan dan posisi kursor di atas kiri
lcd.print("HENDRY KURNIAWAN "); // Tampilkan "HENDRY
KURNIAWAN" pada posisi ini
lcd.setCursor(0, 1); //
Atur kursor pada posisi awal
// pada
baris berikutnya
lcd.print("--- ESP32 ---"); // Tampilkan "--- ESP32
---" pada posisi ini
}
void loop() {
}
Hasil dari program diatas akan menampilkan tulisan LCD seperti pada gambar di bawah ini :
Untuk memodifikasinya silahkan diganti programnya
dengan teks yang kita inginkan.
Untuk menampilkan animasi dasar LCD berikutnya maka bisa di coba
pada sketch program di bawah ini :
/***********************************************
Program
animasi dasar IIC pada LCD
Oleh : Hendry
Kurniawan,S.Pd
***********************************************/
#include <Wire.h> //library I2C
#include <LiquidCrystal_I2C.h> //library LCD
LiquidCrystal_I2C lcd(0x27,16,2); // set address I2C
dan besar karakter untuk lcd 16×2
void setup()
{
lcd.init();
// inisiasi LCD
}
void loop()
{
lcd.backlight();//menyalakan backlight
lcd.clear(); // menghapus
tampilan
lcd.print("HENDRY KURNIAWAN");//menulis kata
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.noBacklight();//mematikan backlight
lcd.print("Lampu Mati");//menulis kata
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.backlight();//menyalakan backlight
lcd.print("Lampu Hidup");//menulis kata
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.setCursor(0,0);//mengatur posisi kursor pada baris 1 posisi 0
lcd.print("Baris satu");//menulis kata
lcd.setCursor(3,1);//mengatur posisi kursor pada baris 2 posisi 3
lcd.print("Geser Baris 2");//menulis kata
delay(3000);//menunggu 3000 milidetik
lcd.clear();//menghapus tampilan LCD
}
Hasil penyalaannya dapat ditonton dalam video
dibawah ini.
Demikianlah pembahasan tentang dasar-dasar penyalaan LCD menggunakan modul I2C pada mikrokontroller ESP32.
Terima kasih, masukannya
BalasHapus