const int buzzer = 8;
// 音符定義(C4 = 262Hz)
#define NOTE_0 0 // 休止符
#define NOTE_1 262 // C4
#define NOTE_2 294 // D4
#define NOTE_3 330 // E4
#define NOTE_4 349 // F4
#define NOTE_5 392 // G4
#define NOTE_6 440 // A4
#define NOTE_7 494 // B4
// 歡樂頌旋律(簡化版)
int melody[] = {
NOTE_3, NOTE_3, NOTE_4, NOTE_5,
NOTE_5, NOTE_4, NOTE_3, NOTE_2,
NOTE_1, NOTE_1, NOTE_2, NOTE_3,
NOTE_3, NOTE_2, NOTE_2, NOTE_0,
NOTE_3, NOTE_3, NOTE_4, NOTE_5,
NOTE_5, NOTE_4, NOTE_3, NOTE_2,
NOTE_1, NOTE_1, NOTE_2, NOTE_3,
NOTE_2, NOTE_1, NOTE_1, NOTE_0
};
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
};
void setup() {
// 無需初始化
}
void loop() {
for (int i = 0; i < sizeof(melody)/sizeof(int); i++) {
int duration = 1000 / noteDurations[i];
if (melody[i] != NOTE_0) {
tone(buzzer, melody[i], duration);
}
delay(duration * 1.3); // 加入間隔
noTone(buzzer);
}
}
留言
張貼留言