区别: 有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,也是因为里面多了一个震荡源的原因。
二者对比:
有源蜂鸣器 | 无源蜂鸣器 | |
---|---|---|
价格 | 价格稍贵 | 价格较便宜 |
控制方式 | 简单,通过电平方式即可控制 | 稍复杂,需要通过2-5Khz的方波控制 |
灵活性 | 只能控制蜂鸣器叫或不叫,只有一个单音 | 声音频率大小灵活可控 |
蜂鸣器模块购买参考商家(您可以选择其他商家渠道或者自己制作,只要功能类似即可)
有源蜂鸣器的控制很简单,直接给高低电平即可控制。
假设以下程序用的是低电平触发的蜂鸣器,且蜂鸣器的控制引脚接Core的“D0”端口:
--配置D1为普通输出 LIB_GpioOutputConfig("D0","STANDARD") LIB_GpioWrite("D0",0)--让蜂鸣器开始鸣叫 --开始大循环 while(GC(1) == true) do --if something == true then --LIB_GpioWrite("D0",1)--如果某些条件满足后,关闭蜂鸣器 --end end
无源蜂鸣器的控制需要一个2-5Khz的方波,我们可以利用Ubeeto物联网开发板的PWM功能来实现。
假设以下程序用的是低电平触发的蜂鸣器,蜂鸣器的控制引脚接Core的“D1”端口,通过程序给蜂鸣器一个2.5Khz,占空比为50%来控制蜂鸣器鸣叫。
--配置D0端口为PWM功能,参数400表示PWM是周期400us(2.5Khz),参数0表示PWM低电平有效 LIB_PwmConfig1(400,0) --更新D0口的PWM输出占空比为50% LIB_PwmUpdate1(200)--让蜂鸣器开始鸣叫 --开始大循环 while(GC(1) == true) do --if something == true then --LIB_PwmUpdate1(0)--如果某些条件满足后,关闭蜂鸣器 --end end
简单、快捷、高效、强大的物联网开发板
© 2022. All Rights Reserved. 粤ICP备2021058065号