Cara menggunakan LCD 16×2 di ESP32

Cara menggunakan LCD 16×2 di ESP32

berikut ini adalah cara memprogram lcd 16×2 di esp32 dengan mudah

untuk code bisa gunakan kode dibawah ini. :

#include <Arduino.h>

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);


void lcd_i2c(String text = "",int kolom = 0, int baris = 0, int clear = 1)
{
  byte bar[8] = {B11111,B11111,B11111,B11111,B11111,B11111,B11111,};
  if (text == "")
  {
   lcd.begin();  //jika error pakai lcd.init();
   lcd.backlight();
   lcd.createChar(0, bar);
   lcd.setCursor(0,0);
   lcd.print("Loading..");
   for (int i=0; i<16; i++)
   {
    lcd.setCursor(i, 1);  
    lcd.write(byte(0)); 
    delay(100);
   }
   delay(50);
   lcd.clear();
  }
  else
  {
if(clear == 1){
lcd.clear();}
    lcd.setCursor(kolom,baris);
    lcd.print(text + "                ");
  }
}



void setup()
{
Serial.begin(9600);
lcd_i2c();

}
void loop(){
lcd_i2c("System Ready");


}


Program ini digunakan untuk menampilkan informasi pada LCD 16×2 berbasis I2C menggunakan Arduino. Di awal program, LCD akan menampilkan animasi “Loading” berupa progress bar, kemudian dilanjutkan dengan menampilkan tulisan seperti “System Ready” secara berulang.

Fungsi utama yang dibuat bernama lcd_i2c(). Fungsi ini dirancang fleksibel: bisa menampilkan teks pada posisi tertentu di layar, menghapus layar sebelumnya, dan juga menampilkan animasi loading saat tidak ada teks yang diberikan.

Animasi loading dilakukan dengan membuat karakter khusus berupa blok penuh, kemudian menampilkannya satu per satu dari kiri ke kanan di baris bawah LCD, memberikan efek progress. Ini berguna untuk menunjukkan bahwa sistem sedang memulai atau memproses sesuatu.

Setelah loading selesai, layar akan dibersihkan dan teks baru akan ditampilkan. Teks yang ditampilkan bisa diatur letaknya (kolom dan baris), serta dapat menghapus layar sebelumnya atau tidak, tergantung pengaturan.

Program ini menggunakan komunikasi I2C (alamat 0x27) sehingga hanya membutuhkan 2 pin pada Arduino, membuatnya sangat efisien untuk berbagai proyek, baik monitoring sensor, sistem antrian, maupun dashboard mini.

Agar layar tidak terus berkedip karena refresh yang terlalu cepat, disarankan menambahkan jeda (delay) dalam loop utama.

untuk diskusi bisa kontak dibawah ini :

Sosial media :