#define BUZZER_PIN 9 // Pin connected to the buzzer
// Note frequencies
#define NOTE_E5 659
#define NOTE_D5 587
#define NOTE_C5 523
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
#define NOTE_F5 698
// Melody for "Jingle Bells"
int melody[] = {
NOTE_E5, NOTE_E5, NOTE_E5, 0, NOTE_E5, NOTE_E5, NOTE_E5, 0,
NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, 0,
NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, 0, NOTE_G5,
NOTE_E5, NOTE_E5, NOTE_E5, 0, NOTE_E5, NOTE_E5, NOTE_E5, 0,
NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, 0,
NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5,
NOTE_E5, NOTE_G5, NOTE_G5, NOTE_F5, NOTE_D5, NOTE_C5, 0
};
// Note durations: 4 = quarter note, 8 = eighth note, etc.
int noteDurations[] = {
8, 8, 4, 8, 8, 4, 8, 8,
8, 8, 8, 8, 2, 8,
8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 4, 8, 2,
8, 8, 4, 8, 8, 4, 8, 8,
8, 8, 8, 8, 2, 8,
8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 4, 8
};
void setup() {
// No setup required for the buzzer
}
void loop() {
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) {
int duration = 1000 / noteDurations[i]; // Calculate note duration
if (melody[i] == 0) {
noTone(BUZZER_PIN);
} else {
tone(BUZZER_PIN, melody[i], duration);
}
delay(duration * 1.3); // Slight pause between notes
}
delay(2000); // Pause before repeating the song
}