PWM可以放出音乐,我试了下千真万确,还挺好听。
原理是PWM产生频率一个数组而延时也就是节拍又是一个数组,两数组同时调。这样就出音乐了,而我只接一个无源的蜂鸣器.
以下是程序:
#include "mbed.h"
PwmOut PWM(PB16);
float frequency[]={659,554,659,554,440,494,554,587,494,659,554,440};
float beat[]={1,1,1,1,1,0.5,0.5,1,1,1,1,2};
int main()
{
while(1)
{
for(int i=0;i<=11;i++)
{
PWM.period(1/(2*frequency[i]));
PWM=0.5;
wait(0.4*beat[i]);
}
}
}
以下是运行时的照片:
|