Cara Menampilkan Teks dan Animasi Loading di LCD 16×2 I2C Menggunakan Arduino Uno

Cara Menampilkan Teks dan Animasi Loading di LCD 16×2 I2C Menggunakan Arduino Uno

LCD 16×2 adalah komponen sederhana yang sangat membantu untuk memberikan umpan balik langsung dalam proyek-proyek Arduino. Kali ini kita akan mempelajari cara menampilkan teks sekaligus membuat efek loading animasi menggunakan LCD berbasis I2C.

Setelah itu, kamu bisa gunakan kode berikut 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");


}


Kode di atas bekerja cukup fleksibel. Begitu Arduino dinyalakan, LCD akan menampilkan tulisan “Loading..” di baris atas dan sebuah animasi bar penuh berjalan pelan-pelan dari kiri ke kanan di baris bawah. Animasi ini tercipta dari karakter custom bernama bar yang diatur dengan bit penuh (B11111).

Setelah animasi selesai, layar dibersihkan. Kemudian masuk ke loop utama, LCD akan terus menampilkan teks “System Ready” tanpa efek loading. Fungsi lcd_i2c() ini memang sengaja dibuat serbaguna: bisa untuk animasi, bisa untuk teks biasa, dan bisa juga diatur apakah layar mau dibersihkan dulu atau langsung ganti isi.

Nilai kolom dan baris bisa kamu atur sesuai kebutuhan jika ingin menampilkan teks di posisi tertentu. Misalnya kamu ingin teks muncul di tengah, tinggal ganti argumen fungsi jadi lcd_i2c(“Halo”, 4, 0); misalnya.

Dan karena kita pakai komunikasi I2C, hanya dua pin yang dipakai dari Arduino, membuat proyek ini lebih rapi dan menghemat pin.

Kalau saat dijalankan LCD tidak menampilkan apa-apa, kemungkinan besar masalahnya ada di alamat I2C yang tidak cocok. Cobalah cek menggunakan kode scanner I2C sederhana agar kamu tahu alamat yang sebenarnya. Setelah itu tinggal sesuaikan di bagian LiquidCrystal_I2C lcd(0x27, 16, 2);. Kalau sudah cocok, LCD akan langsung merespons dan animasi loading bisa berjalan mulus.

Diskusi hubungi kontak di bawah ini :

Sosial media lainnya: