const int buzzerPin = 8; // Pin untuk buzzer
const int redPin = 9; // Pin untuk LED Merah
const int greenPin = 10; // Pin untuk LED Hijau
const int bluePin = 11; // Pin untuk LED Biru
// Nada untuk lagu "SPARKLE"
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
int melody[] = {
NOTE_E4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4,
NOTE_E4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_G4, NOTE_F4, NOTE_E4, NOTE_D4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4
};
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4
};
// Fungsi untuk mengatur warna LED RGB
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
void setup() {
pinMode(buzzerPin, OUTPUT); // Inisialisasi pin buzzer sebagai output
pinMode(redPin, OUTPUT); // Inisialisasi pin merah sebagai output
pinMode(greenPin, OUTPUT); // Inisialisasi pin hijau sebagai output
pinMode(bluePin, OUTPUT); // Inisialisasi pin biru sebagai output
}
void loop() {
for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(melody[0]); thisNote++) {
int noteDuration = 1000 / noteDurations[thisNote];
// Atur warna LED berdasarkan nada yang dimainkan
switch (melody[thisNote]) {
case NOTE_C4: setColor(255, 0, 0); break; // Merah
case NOTE_D4: setColor(255, 127, 0); break; // Oranye
case NOTE_E4: setColor(255, 255, 0); break; // Kuning
case NOTE_F4: setColor(0, 255, 0); break; // Hijau
case NOTE_G4: setColor(0, 0, 255); break; // Biru
case NOTE_A4: setColor(75, 0, 130); break; // Indigo
case NOTE_B4: setColor(148, 0, 211); break; // Ungu
case NOTE_C5: setColor(255, 255, 255); break; // Putih
case NOTE_D5: setColor(255, 192, 203); break; // Pink
case NOTE_E5: setColor(0, 255, 255); break; // Cyan
case NOTE_F5: setColor(255, 165, 0); break; // Oranye Tua
case NOTE_G5: setColor(255, 105, 180); break; // Hot Pink
case NOTE_A5: setColor(144, 238, 144); break; // Light Green
case NOTE_B5: setColor(216, 191, 216); break; // Thistle
default: setColor(255, 255, 255); break; // Putih untuk nada lainnya
}
tone(buzzerPin, melody[thisNote], noteDuration); // Mainkan nada
int pauseBetweenNotes = noteDuration * 1.3;
delay(pauseBetweenNotes);
noTone(buzzerPin);
}
}