mbed 蜂鸣器演奏圣诞快乐
时间: 2023-06-27 10:07:33 浏览: 184
蜂鸣器演奏音乐
5星 · 资源好评率100%
好的,以下是使用mbed蜂鸣器演奏《圣诞快乐》的代码示例:
```cpp
#include "mbed.h"
// 定义蜂鸣器引脚
PwmOut buzzer(PB_10);
// 定义歌曲数据
float notes[] = { 659.26, 659.26, 0, 659.26, 0, 523.25, 659.26, 0, 784, 0, 392, 523.25, 0, 392, 0, 330, 0, 440, 0, 494, 0, 466, 0, 440, 0, 392, 0, 659.26, 0, 784, 0, 880, 0, 698.46, 0, 784, 0, 659.26, 0, 523.25, 587.33, 0, 494, 0, 523.25, 0, 392, 0, 329.63, 0, 523.25, 0, 392, 0, 329.63, 0, 261.63, 0, 440, 0, 494, 0, 466, 0, 440, 0, 392, 0, 659.26, 0, 784, 0, 880, 0, 698.46, 0, 784, 0, 659.26, 0, 523.25, 587.33, 0, 494, 0, 523.25, 0, 392, 0, 329.63, 0, 523.25, 0, 392, 0, 329.63, 0, 261.63, 0, 440, 0, 494, 0, 466, 0, 440, 0, 392, 0 };
int main()
{
// 设置蜂鸣器频率和占空比
buzzer.period(1.0 / 523.25);
buzzer.write(0.5);
// 演奏歌曲
for (int i = 0; i < sizeof(notes) / sizeof(float); i++) {
if (notes[i] == 0) {
// 空音符
wait(0.2);
} else {
// 发声
buzzer.period(1.0 / notes[i]);
wait(0.5);
}
// 停止发声
buzzer.write(0);
}
return 0;
}
```
这段代码将歌曲数据存储在一个浮点数数组中,然后使用mbed的PWM输出控制蜂鸣器发声。当歌曲数据中的元素为0时,表示空音符,此时等待0.2秒。当歌曲数据中的元素不为0时,设置蜂鸣器的频率为该元素值,然后发声0.5秒。最后,停止发声,等待下一个音符的到来。运行代码后,蜂鸣器将演奏《圣诞快乐》的曲调。
阅读全文