#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD 16x2 I2C dengan alamat 0x27 (umum digunakan)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Lirik lagu dibagi per 2 baris untuk LCD 16x2
const char* lyrics[][2] = {
{"Jang lanjut chat", "nanti laba Sherlock"},
{"saja ko di mana", "bakudapa Ade ko"},
{"bagus ini ka", "sumpah sa mau nikah"},
{"Jang bikin pusing", "sa pusing karna umur"},
{"su tua", ""},
{"Aman saja mo", "ngapain mo repot"},
{"Tunjugan sampe", "tua turun dari"},
{"freeport", "Hooneymoon di Inggris"},
{"di Paris di", "Jerman Su pasti ko"},
{"deng sa barang", "jalan aman"}
};
// Durasi delay setelah satu tampilan selesai (ms)
const int lineDelay = 1000;
// Delay per huruf (ms)
const int charDelay = 100;
const int lyricCount = sizeof(lyrics) / sizeof(lyrics[0]);
void setup() {
lcd.init(); // Inisialisasi LCD I2C
lcd.backlight(); // Nyalakan lampu latar
}
void loop() {
for (int i = 0; i < lyricCount; i++) {
lcd.clear();
// Baris pertama
lcd.setCursor(0, 0);
printTypingEffect(lyrics[i][0]);
// Baris kedua
lcd.setCursor(0, 1);
printTypingEffect(lyrics[i][1]);
delay(lineDelay);
}
}
// Fungsi untuk menampilkan teks dengan efek ketik
void printTypingEffect(const char* text) {
for (int i = 0; text[i] != '\0'; i++) {
lcd.print(text[i]);
delay(charDelay);
}
}