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]);
- }
-
- }
- }
以下是运行时的照片:
|