#include <LiquidCrystal_I2C.h>
const int buzzerPin = 8;
const int ledPin = 13;
// Inisialisasi LCD 16x2, alamat 0x27 (default di Wokwi)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Lirik lagu
const char* lyrics[] = {
"Sekarang kamu",
"sama yang lain",
"Awalnya kuu",
"cuman cobain",
"Tapi ku ketagihan",
"Ku bilang amin",
"Sampai ke",
"pelaminan"
};
const int LINES = sizeof(lyrics) / sizeof(lyrics[0]);
// Nada sederhana (C-D-E-F-G)
int melody[] = {262, 294, 330, 349, 392};
int melodyLen = sizeof(melody) / sizeof(melody[0]);
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mulai Lirik...");
delay(1500);
}
void loop() {
for (int i = 0; i < LINES; i += 2) {
lcd.clear();
// Tampilkan baris 1
lcd.setCursor(0, 0);
lcd.print(lyrics[i]);
// Jika ada baris 2, tampilkan di bawahnya
if (i + 1 < LINES) {
lcd.setCursor(0, 1);
lcd.print(lyrics[i + 1]);
}
// LED nyala
digitalWrite(ledPin, HIGH);
// Mainkan nada sesuai indeks
int freq = melody[(i / 2) % melodyLen];
tone(buzzerPin, freq, 400);
delay(450);
digitalWrite(ledPin, LOW);
// Tunggu 2 detik sebelum ganti lirik
delay(2000);
}
// Setelah semua selesai
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Lirik selesai!");
delay(3000);
}