arduino蜂鸣器播放音乐代码青花瓷
时间: 2024-12-11 19:14:10 浏览: 32
当然可以!以下是一个使用Arduino和蜂鸣器播放《青花瓷》音乐的代码示例:
```cpp
#include "pitches.h"
// 音符定义
int melody[] = {
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_E4, NOTE_FS4, NOTE_G4, NOTE_B4, NOTE_G4, NOTE_FS4, NOTE_E4,
NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_B3,
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_G4,
NOTE_E4, NOTE_FS4, NOTE_G4, NOTE_B4, NOTE_G4, NOTE_FS4, NOTE_E4,
NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_B3
};
// 节拍定义
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 2
};
void setup() {
// 初始化蜂鸣器引脚
pinMode(8, OUTPUT);
}
void loop() {
// 遍历每个音符
for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(melody[0]); thisNote++) {
// 计算音符的持续时间
int noteDuration = 1000 / noteDurations[thisNote];
// 播放音符
tone(8, melody[thisNote], noteDuration);
// 暂停音符之间的间隔
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// 停止蜂鸣器
noTone(8);
}
// 循环结束后停止程序
while (true);
}
```
请注意,你需要下载并包含`pitches.h`文件,该文件包含了所有音符的频率定义。你可以在网上找到这个文件并将其添加到你的Arduino项目中。
阅读全文