//MELDA FRESTIANA
//2215061130
//PSTI B
#define BUZZER_PIN 8
#define LED_PIN_1 13
#define LED_PIN_2 12
#define LED_PIN_3 11
#define LED_PIN_4 10
// Definisikan Melodynya
#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
// Definisikan lagu
const int melody[] = {
NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5
};
// Definisikan durasi setiap not
const int noteDurations[] = {
4, 4, 4, 4, 4, 4, 4, 4
};
void setup() {
// Set pin buzzer dan LED sebagai output
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(LED_PIN_3, OUTPUT);
pinMode(LED_PIN_4, OUTPUT);
}
void loop() {
// Loop untuk memainkan lagu
for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(melody[0]); thisNote++) {
// Hitung durasi masing-masing not
int noteDuration = 1000 / noteDurations[thisNote];
// Mainkan not dan hidupkan LED sesuai indeks not
tone(BUZZER_PIN, melody[thisNote], noteDuration);
digitalWrite(LED_PIN_1, thisNote % 4 == 0 ? HIGH : LOW); // Hidupkan LED 1 setiap 4 not
digitalWrite(LED_PIN_2, thisNote % 4 == 1 ? HIGH : LOW); // Hidupkan LED 2 setiap 4 not
digitalWrite(LED_PIN_3, thisNote % 4 == 2 ? HIGH : LOW); // Hidupkan LED 3 setiap 4 not
digitalWrite(LED_PIN_4, thisNote % 4 == 3 ? HIGH : LOW); // Hidupkan LED 4 setiap 4 not
// Tunggu durasi not sebelum memainkan not berikutnya
delay(noteDuration);
// Matikan buzzer dan LED
noTone(BUZZER_PIN);
digitalWrite(LED_PIN_1, LOW);
digitalWrite(LED_PIN_2, LOW);
digitalWrite(LED_PIN_3, LOW);
digitalWrite(LED_PIN_4, LOW);
// Tunggu sebentar sebelum memainkan not berikutnya
delay(60);
}
}