有源蜂鸣器的声音是固定的,工作电压恒定,改变通断电的时间获得不同时长的音响,譬如连续音、快速短音、慢速长音(类似莫尔斯电报)来区分不同的报警信息。

简单的说,有源蜂鸣器只能发出一种声音,因为它的频率是固定的。只能根据响声的不同间隔长短来区分。

例如,闹钟是:滴滴~滴滴~滴滴~。

有源只要通电就响了,我们只要控制好通电的时间就好。

#include "mbed.h"

PwmOut PWM1(PB_13);

int main() {

while(){

    PWM1 = ;//响
wait(0.1);//响0.1s
PWM1 = ;//不响
wait(0.1);//不响0.1s
PWM1 = ;//再响
wait(0.1);//响0.1s
PWM1 = ;//不响
wait(0.6);//不响0.6s } }//end main

以上就可以实现,滴0.1s滴0.1s  (0.6s后)滴0.1s滴0.1s  (0.6s后)滴0.1s滴0.1s

人耳听起来就是常见的闹钟 滴滴~滴滴~滴滴~的效果。

这里PWM波,换成DigitalOut也是一样的,PWM波并没有什么特殊的意义。

我只是测试PWM有什么影响没有。

改变PWM波的频率,蜂鸣器的声调没有变化。

改变PWM波的大小,例如PWM1=0.5,会发出那种不稳定的颤抖的声效,没什么用。

所以有源蜂鸣器只是能响而已,声音固定的。

电平=1就响,=0不响。

不能上传录音,上一张图:

STM32用有源蜂鸣器实现闹钟的声响-LMLPHP

05-11 21:48