#define BUZZER_PIN 4
#define BPM 110
float note_len = 60000.0 * 4.0 / BPM;
#define A4 440
#define B4 494
#define C5 523
#define D5 587
#define E5 659
#define F5 698
#define G5 784
#define A5 880
#define PAUSE 0
int freqs[] = {
E5, A5, A5, B4, C5, D5, C5, B4, A4,
A4, C5, C5, C5, B4, A4, G5, A5, G5, E5,
D5, E5, D5, C5, B4, A4,
A4, C5, C5, C5, B4, A4, G5, A5, G5, E5,
D5, E5, D5, C5, B4, A4, PAUSE
};
int durations[] = {
8, 8, 8, 8, 8, 8, 8, 8, 4,
4, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 4,
4, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 4, 4
};
int melody_size = sizeof(freqs) / sizeof(freqs[0]);
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
for (int i = 0; i < melody_size; i++) {
int duration = note_len / durations[i];
tone(BUZZER_PIN, freqs[i], duration);
if (freqs[i] == 0) {
delay(duration);
} else {
delay(duration * 1.3);
}
}
delay(3000);
}