ARSAFAMILY.COM
MEMBUAT RUNNING TEXT LCD 16×2 ESP32
Bahan yang dibutuhkan adalah ESP32 dan LCD 16×2. Ritual pertama yang harus anda lakukan adalah, menginstall library Liquid Crystal I2C.
Kali ini cara menginstall library pada arduino ide agak berbeda, kita akan mencoba dengan cara manual.
- Klik link ini untuk mendownload library LiquidCrystal_I2C
- Ekstrak file .zip yang telah didownload, folder akan bernama LiquidCrystal_I2C-master
- Ubah nama folder dari LiquidCrystal_I2C-master to LiquidCrystal_I2C
- Pindahkan folder LiquidCrystal_I2C ke folder library Arduino IDE anda, biasanya ada di document -> arduino
- Lalu restart Arduino IDE anda
Ritual kedua adalah mengambil address dari I2C. Rangkailah ESP32 dengan LCD 16×2 seperti gambar di bawah ini
Tampilan bagian I2C tampak dari belakang LCD akan seperti berikut
- VCC I2C -> 3.3V ESP32
- GND I2C -> GND ESP32
- SDA I2C -> D21 ESP32
- SCL I2C -> D22 ESP32
Lalu copy paste code untuk scan address dari I2C di bawah ini, kemudian Upload ke ESP32
#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.println(address,HEX);
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("No I2C devices found\n");
}
else {
Serial.println("done\n");
}
delay(5000);
}
Hasilnya akan seperti gambar di bawah
Hasil dari address I2C yang digunakan adalah 0x27, address tersebut diingat / dicatat karena akan kita pakai untuk kode untuk running text nya. Copy paste kode di bawah ini
#include <LiquidCrystal_I2C.h>
int kolom = 16;
int baris = 2;
LiquidCrystal_I2C lcd(0x27, kolom, baris);
String TeksDiam = "Kata2 hari ini :";
String TeksBergerak = "Kalau orang lain bisa kenapa harus saya wkwkwk";
void TulisanBergerak(int row, String message, int delayTime, int kolom) {
for (int i=0; i < kolom; i++) {
message = " " + message;
}
message = message + " ";
for (int pos = 0; pos < message.length(); pos++) {
lcd.setCursor(0, row);
lcd.print(message.substring(pos, pos + kolom));
delay(delayTime);
}
}
void setup(){
lcd.init();
lcd.backlight();
}
void loop(){
lcd.setCursor(0, 0);
lcd.print(TeksDiam);
TulisanBergerak(1, TeksBergerak, 300, kolom);
}
Address I2C yang tadi kita dapat 0x27 dimasukkan ke dalam potongan kode berikut
...
LiquidCrystal_I2C lcd(0x27, kolom, baris);
...
Untuk karakter yang akan ditampilkan bisa diubah pada kode ini
...
String TeksDiam = "Kata2 hari ini :";
String TeksBergerak = "Kalau orang lain bisa kenapa harus saya wkwkwk";
...
Sedangkan untuk posisinya text yang akan digerakkan bisa di set pada kode ini
...
TulisanBergerak(1, TeksBergerak, 300, kolom);
...
// Angka 1 menandakan adalah teks yang bergerak akan ditampilkan pada baris bawah
// 300 adalah kecepatan perpindahakan karakter atau kecepatan running text nya
// silahkan dicustom sendiri sesuai kebutuhan
0x27 adalah address yang berguna sebagai penanda untuk ESP32 melakukan komunikasi ke I2C untuk menampilkan karakter / string pada LCD 16×2.
Upload kode di atas ke ESP32, maka hasilnya akan seperti video dibawah ini
Seorang PNS Kementerian Dalam Negeri yang menjadi penerima Beasiswa Kominfo pada Magister Informatika ITB Program Smart-X, yaitu program kerjasama antara Kominfo dan ITB dalam pemenuhan sumber daya manusia di bidang Smart System
1 Comment
View Comments