// Definisikan pin LED dan buzzer
const int ledPins[8] = {13, 12, 11, 10, 9, 8, 7, 6}; // Pin LED dari LED1 hingga LED8
const int buzzerPin = 2; // Pin Buzzer
// Frekuensi untuk nada Do Re Mi Fa So La Si Do
const int notes[8] = {262, 294, 330, 349, 392, 440, 466, 523}; // Frekuensi dalam Hz
// Notasi lagu "Gundul Gundul Pacul" (disederhanakan)
int melody[] = {
392, 392, 392, 349, 330, 294, 262, // "Gundul, gundul pacul cul..."
392, 392, 392, 349, 330, 294, 262, // "Gembelengan..."
330, 349, 392, 440, 523, // "Nyunggi nyunggi wakul..."
392, 440, 523, 440, 392, // "Wakul gembelengan..."
330, 392, 294, 330, 262 // "Wakul ngglimpang..."
};
// Durasi setiap nada dalam milidetik
int noteDurations[] = {
500, 500, 500, 500, 500, 500, 500, // Durasi untuk bagian pertama
500, 500, 500, 500, 500, 500, 500, // Durasi untuk bagian kedua
500, 500, 500, 500, 750, // Durasi untuk bagian ketiga
500, 500, 500, 500, 750, // Durasi untuk bagian keempat
500, 500, 500, 500, 1000 // Durasi untuk bagian kelima
};
// Total jumlah notasi pada lagu
const int melodyLength = sizeof(melody) / sizeof(melody[0]);
void setup() {
// Inisialisasi pin LED dan buzzer sebagai OUTPUT
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Mainkan lagu "Gundul Gundul Pacul"
for (int i = 0; i < melodyLength; i++) {
// Nyalakan LED sesuai urutan nada
digitalWrite(ledPins[i % 8], HIGH);
// Mainkan nada pada buzzer
tone(buzzerPin, melody[i], noteDurations[i]);
// Tunggu selama durasi not
delay(noteDurations[i]);
// Matikan LED dan buzzer
digitalWrite(ledPins[i % 8], LOW);
noTone(buzzerPin);
// Tunggu sebentar sebelum menyalakan LED berikutnya
delay(100);
}
// Tunggu sebentar sebelum memulai lagi
delay(1000);
}