any012 发表于 2019-3-23 08:59:56

请教,如何使蜂鸣器响声逐渐变大?

本帖最后由 any012 于 2019-3-23 09:30 编辑

尝试用定时器实现PWM波输出,8M的主频,预分频80,计数值500,算下来定时器更新周期是2K。定时器每次更新中断里修改比较值,这样500个周期使占空比由0变化到100.
找了个5V的蜂鸣器串了一个电阻接到24V上,实验结果,声音是有变化,但声音变化很怪...
试着在蜂鸣器两端并了一个电容,效果稍好一点,但离预想的差太远。试过10UF的电解电容和1uF的无极性电容。

请教,有什么办法能实现较好的调压功能?

toofree 发表于 2019-3-23 08:59:57

用无源蜂鸣器试一下,记得用额定电压,几伏的蜂鸣器就给几伏供电。
这样通过PWM频率来控制声音频率,占空比变化来控制声音大小。记得蜂鸣器两端加一个续流二极管,不加的话产生的反压会污染电源。

有源蜂鸣器是有自己固定频率的,很可能你通的频率正好与它的固定频率相叠,产生一个莫名其妙的频率,声音可能会难听。

如果还不行,那么可以换成喇叭,用电解电容隔直流、交流耦合的方式来工作。那样的话驱动就需要是NPN、PNP对管,或NMOS、PMOS对管,做成简单的功放。

any012 发表于 2019-3-23 09:38:26

又试了下,预分频4,定时器计数值2000;这样定时器更新频率=8M/4/2K = 1K Hz;
那么经过2秒占空比由0变为100%。
效果还是不太好。

any012 发表于 2019-3-23 10:14:30

又试了不分频,定时器计数值设为4000,定时器频率 = 8M/4K = 2K;
经过2秒,经过4000个定时器中断,PWM占空比由0变到100%。
效果还是不太理想。

如果固定在1秒或2秒内声音逐渐变大,感觉没办法再提高定时器频率了。频率越高,在2秒内的计数值也就越大。

wenyangzeng 发表于 2019-3-23 10:14:44

PWM输出为高时,蜂鸣器承受24-3.3=20.7V电压,PWM输出为低时,蜂鸣器承受24V电压,这种电路的接法当然无法得到正确的音量控制,同时CPU承受不了超过3.3V的VCC,会烧片子的。

any012 发表于 2019-3-23 10:43:33

wenyangzeng 发表于 2019-3-23 10:14
PWM输出为高时,蜂鸣器承受24-3.3=20.7V电压,PWM输出为低时,蜂鸣器承受24V电压,这种电路的接法当然无法 ...

串电阻了,查了下蜂鸣器的最大工作电流,用20V除这个电流,找了个附近阻值的电阻。

其实,并没有用单品及IO口驱动PWM,而是通过光耦简介控制mos管,mos管开漏接蜂鸣器。

select326 发表于 2019-3-23 10:48:29

搞个有源的省事,无源的太麻烦了

any012 发表于 2019-3-23 11:09:37

select326 发表于 2019-3-23 10:48
搞个有源的省事,无源的太麻烦了

用的就是有源蜂鸣器,之所以用PWM,是想调整音量由小变大。

edmundlee 发表于 2019-3-23 12:14:37

蜂鸣片发声是靠自振, 所以PWM起不到调整音量的作用。
我认为两个方法可以改变声量
一, 变频, 不是变占空比
二, 控制蜂鸣片电端的电压

any012 发表于 2019-3-23 13:42:22

edmundlee 发表于 2019-3-23 12:14
蜂鸣片发声是靠自振, 所以PWM起不到调整音量的作用。
我认为两个方法可以改变声量
一, 变频, 不是变占空 ...

现在就是想用pwm实现调压,已在蜂鸣器两端并了一个1uF的无极性电容。
页: [1] 2 3
查看完整版本: 请教,如何使蜂鸣器响声逐渐变大?