// Mendefinisikan pin untuk buzzer, LED, dan tombol
int pinBuzzer = 8; // Pin untuk buzzer
int pinLED = 9; // Pin untuk LED
int pinTombol = 2; // Pin untuk tombol
// Mendefinisikan frekuensi nada untuk lagu "Twinkle Twinkle Little Star"
int melodi[] =
{
262, 262, 392, 392, 440, 440, 392, // Twinkle, twinkle, little star
349, 349, 330, 330, 294, 294, 262, // How I wonder what you are
392, 392, 349, 349, 330, 330, 294, // Up above the world so high
392, 392, 349, 349, 330, 330, 294, // Like a diamond in the sky
262, 262, 392, 392, 440, 440, 392, // Twinkle, twinkle, little star
349, 349, 330, 330, 294, 294, 262 // How I wonder what you are
};
// Durasi nada (dalam milidetik)
int durasiNada[] =
{
500, 500, 500, 500, 500, 500, 1000, // Durasi untuk setiap nada
500, 500, 500, 500, 500, 500, 1000,
500, 500, 500, 500, 500, 500, 1000,
500, 500, 500, 500, 500, 500, 1000,
500, 500, 500, 500, 500, 500, 1000,
500, 500, 500, 500, 500, 500, 1000
};
void setup()
{
pinMode(pinBuzzer, OUTPUT); // Mengatur pin buzzer sebagai OUTPUT
pinMode(pinLED, OUTPUT); // Mengatur pin LED sebagai OUTPUT
pinMode(pinTombol, INPUT_PULLUP); // Mengatur pin tombol sebagai INPUT
}
void loop()
{
// Jika tombol ditekan
if (digitalRead(pinTombol) == LOW) {
mainkanLagu(); // Mainkan lagu
delay(1000); // Delay untuk mencegah pengulangan saat tombol ditekan
}
}
void mainkanLagu()
{
for (int i = 0; i < 28; i++) { // Memainkan setiap nada
tone(pinBuzzer, melodi[i]); // Menghasilkan nada
digitalWrite(pinLED, HIGH); // Menyalakan LED
delay(durasiNada[i]); // Tahan selama durasi nada
digitalWrite(pinLED, LOW); // Mematikan LED
noTone(pinBuzzer); // Mematikan buzzer
delay(50); // Delay sebelum nada berikutnya
}
}