跳到主要内容

有源和无源蜂鸣器控制

一、有源蜂鸣器和无源蜂鸣器

区别: 有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,也是因为里面多了一个震荡源的原因。

二者对比:

有源蜂鸣器无源蜂鸣器
价格价格稍贵价格较便宜
控制方式简单,通过电平方式即可控制稍复杂,需要通过2-5Khz的方波控制
灵活性只能控制蜂鸣器叫或不叫,只有一个单音声音频率大小灵活可控

有源蜂鸣器模块购买链接(您可以选择其他商家渠道或者自己制作,只要功能类似即可)

无源蜂鸣器模块购买链接(您可以选择其他商家渠道或者自己制作,只要功能类似即可)

product

二、有源蜂鸣器控制例程

有源蜂鸣器的控制很简单,直接给高低电平即可控制。

假设以下程序用的是低电平触发的蜂鸣器,且蜂鸣器的控制引脚接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的方波,我们可以利用Core的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