目录
一、蜂鸣器简介
二、有源蜂鸣器驱动
三、无源蜂鸣器驱动
频率计算方法
四、蜂鸣器程序实现
一、蜂鸣器简介
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。比如台式电脑的主机开机会"滴"一声、洗衣机按下按键及洗衣完成都会有声响,以上这些声音都是通过蜂鸣器来发出的。
蜂鸣器的驱动方式可分为:有源蜂鸣器(内有驱动线路)和无源蜂鸣器(使用外部驱动)。
这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。
二、有源蜂鸣器驱动
有源蜂鸣器不需要外部的激励源,只需要接入直流电源,即可自动发出声音(声音频率相对固定),它的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号,原理图如图:
有源蜂鸣器电路原理图如下图:
通过三极管控制有源蜂鸣器的发声, 当B为高电平时,三极管截止,蜂鸣器不发声,反之,输出低电平时,蜂鸣器发声。(c:集电极,b:基极,e::发射极)
当我们通直流电到有源蜂鸣器的时候,它会发送预设的声音,通常是连续的蜂鸣声或间歇的蜂鸣声等。 但我们不能控制声音,即不能改变频率来改变声音,但我们可以改变它的电压,来改变它的声音。 工作电压不变,改变断电时间,获得不同的长音,如连续声,快短声,慢长声等。
三、无源蜂鸣器驱动
无源蜂鸣器内部没有激励源,只有给它一定频率的方波信号,才能让蜂鸣器的振动装置起振,从而实现发声,同时,输入的方波频率不同,发出的声音也不同(无源蜂鸣器可以模拟曲调实现音乐效果)。下图为无源蜂鸣器的工作原理图:
当我们使用无源蜂鸣器时,如果我们使用直流电源,它不会发出声音。只有交流电源才能发出声音。我们可以通过改变交流电的频率来发出相应的声音。被动蜂鸣器可以通过改变频率来改变其音调,因为没有内部振动源,所以被动蜂鸣器具有声音频率可控的特点,可以演奏音乐。
频率计算方法:
频率 = 周期的倒数,即 f = 1/T,也可以说二者互为倒数 。
频率 f 的单位是赫兹Hz,周期T的单位是秒s。
一般我们通过频率来求得周期,比如1KHz的频率对应的周期就是1s/1000Hz=0.001s=1ms
我们通过延时函数在一个周期内输出相同时间的高电平和低电平模拟方波信号,将信号输送给 无源蜂鸣器驱动蜂鸣器发出声音。
了解原理后,根据下方的频率与音调的对照表,使用无源蜂鸣器便可以播放一首完整的音乐。
文章来源:https://www.toymoban.com/news/detail-789488.html
四、蜂鸣器程序实现
无源蜂鸣器发声的编程思想就是通过延时函数模拟方波信号,驱动无源蜂鸣器发出音调。文章来源地址https://www.toymoban.com/news/detail-789488.html
void Buzzer()
{
for(i = 0; i < 100; i++) //控制蜂鸣器响的时间
{
Sound = ~Sound;
Delay956us();//不同的延时时间,有不同的频率,产生不同的声音
}
for(i = 0; i < 100; i++)
{
Sound = ~Sound;
Delay852us();//不同的延时时间,有不同的频率,产生不同的声音
}
}
到了这里,关于蜂鸣器原理与驱动方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!