arduino蜂鸣器音乐代码
作者:野牛程序员:2023-06-21 11:00:24Arduino阅读 6169
当使用Arduino控制蜂鸣器播放音乐时,可以使用以下代码示例:
// 定义蜂鸣器引脚
#define BUZZER_PIN 9
// 定义音符频率
#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_QUARTER 250
#define NOTE_HALF 500
#define NOTE_WHOLE 1000
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
// 将音符序列以数组形式定义
int melody[] = {
NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, 0, NOTE_B4, NOTE_C5
};
// 将音符时长序列以数组形式定义
int noteDurations[] = {
NOTE_QUARTER, NOTE_QUARTER, NOTE_QUARTER, NOTE_HALF, NOTE_QUARTER, NOTE_QUARTER, NOTE_HALF, NOTE_WHOLE
};
// 计算音符序列的长度
int melodyLength = sizeof(melody) / sizeof(melody[0]);
// 播放音符序列
for (int i = 0; i < melodyLength; i++) {
int noteDuration = 1000 / noteDurations[i];
tone(BUZZER_PIN, melody[i], noteDuration);
delay(noteDuration * 1.3); // 添加延迟,使音符之间有间隔
noTone(BUZZER_PIN);
}
// 延迟一段时间后再次播放
delay(2000);
}在上面的示例代码中,我们使用了一个简单的音乐序列来演示如何使用Arduino控制蜂鸣器播放音乐。你可以根据需要自定义自己的音乐序列,修改melody和noteDurations数组来定义不同的音符和时长。
在setup()函数中,我们将蜂鸣器引脚(在示例中为引脚9)设置为输出模式。在loop()函数中,我们使用tone()函数播放音符,并使用delay()函数添加延迟以控制音符之间的间隔。最后,我们使用noTone()函数停止蜂鸣器的振荡。
请注意,以上代码只是一个示例,你可以根据需要进行修改和扩展,以实现更复杂的音乐播放功能。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

