mbed歌曲代码
时间: 2023-07-03 07:23:08 浏览: 51
以下是一个简单的mbed歌曲代码示例:
```c++
#include "mbed.h"
#include "Speaker.h"
// 定义 Speaker 对象
Speaker speaker(p25);
// 定义歌曲数组
int notes[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
// 定义节拍数组
int durations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
int main() {
// 循环播放歌曲
while(1) {
for(int i = 0; i < sizeof(notes)/sizeof(int); i++) {
speaker.PlayTone(notes[i], durations[i]);
wait_ms(durations[i] * 200);
}
}
}
```
在这个例子中,我们使用了 Speaker 库来控制蜂鸣器播放音调,定义了一个简单的歌曲数组和节拍数组,然后在 `main` 函数中循环播放歌曲。
相关问题
mbed歌曲City of stars代码
以下是使用mbed播放《La La Land》电影中的歌曲《City of Stars》的示例代码:
```c++
#include "mbed.h"
#include "SDFileSystem.h"
#include "wave_player.h"
SDFileSystem sd(D11, D12, D13, D10, "sd"); // SD卡初始化
AnalogOut DACout(PA_4); // DAC输出引脚
int main()
{
// 打开音频文件
FILE *wave_file = fopen("/sd/city_of_stars.wav", "rb");
if(wave_file == NULL) {
printf("Unable to open wave file\r\n");
return 1;
}
// 初始化wave_player
wave_player player(&DACout);
// 播放音频文件
player.play(wave_file);
// 关闭音频文件
fclose(wave_file);
// 播放完成
printf("Done!\r\n");
}
```
请注意,您需要将音频文件“city_of_stars.wav”放在SD卡的根目录中。此代码使用mbed OS和SDFileSystem库播放音频文件,并使用AnalogOut DAC输出音频。您可以更改DACout引脚以适应您的硬件设置。
mbed蜂鸣器音乐代码
这里提供一个简单的mbed蜂鸣器音乐代码示例,可以通过改变数组来演奏不同的音乐:
```C++
#include "mbed.h"
// 定义简单的歌曲
int melody[] = {
262, 196, 196, 220, 196, 0, 247, 262
};
int tempo[] = {
4, 4, 4, 4, 4, 4, 4, 4
};
// 计算延时时间
int calculateDelay(int noteDuration) {
return 1000 / noteDuration;
}
int main() {
PwmOut buzzer(D3);
while(1) {
for (int i = 0; i < sizeof(melody)/sizeof(melody[0]); i++) {
int noteDuration = 1000 / tempo[i];
buzzer.period(1.0 / melody[i]);
buzzer.write(0.5);
wait_ms(calculateDelay(noteDuration));
buzzer.write(0.0);
wait_ms(1);
}
}
}
```
这个示例使用了PWM输出来控制蜂鸣器,并且使用了wait_ms函数来计算延时时间。你可以根据需要改变melody和tempo数组来演奏不同的音乐。