事无巨细,无源蜂鸣器
CEPARK AVR学习板上,最简单的内容也许就是蜂鸣器了。当然如果你硬要用它来唱歌的话,那还是有点难度的。所以我们还是让它先发出“滴滴“声好了。
先来拓展拓展我们的知识吧(内容部分摘取自网上):
★ 什么是蜂鸣器?
蜂鸣器是一种电子电路中常用的发声器件,是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时 器等电子产品中作发声器件;蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。下图是许多蜂鸣器,大部分我都还没有见过:
★ 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,同时也是分别有源和无源蜂鸣器的两种代表。
★ 如何判定你手上的蜂鸣器是有源的还是无源的呢?
① 从外观上看这两种蜂鸣器区别不大,但是在细节上还是稍有差别的,首先一般 的有源蜂鸣器在其正面贴有一片胶纸,而无源蜂鸣器则没有。再观察有引脚的那一面,有源蜂鸣器的两个引脚一高一低,而无源蜂鸣器的两个引脚的高度一样。另外有源蜂鸣器除了引脚露出外,其余部分都是封闭的,而无源蜂鸣器的引脚面可以看到有绿色的电路板。
② 使用电源来判别蜂鸣器的有源和无源:找个5V左右的稳压电源,将电源正极
连接到蜂鸣器标有“+”符号的引脚上,用电源的负极以一定频率不断地碰触蜂鸣器的负极引脚,发出“咔咔”声的是无源蜂鸣器,发出“嘀嘀”声的是有源蜂鸣器。
③ 使用数字表判别蜂鸣器的有源和无源:用数字表的1K以下的欧姆档测量蜂鸣器两脚间的电阻,如果电阻只有几十欧,并且颠倒数字表的表笔测量出来的电阻一样,那么可以判断为无源蜂鸣器,如果两脚间电阻大于1K,那么可以判断是有源蜂鸣器。
★ 有源蜂鸣器和无源蜂鸣器有什么区别?
有源蜂鸣器和无源蜂鸣器的区别就是:有源蜂鸣器直接加上额定电压就能一直发声(当然要同时满足电流要求),而无源蜂鸣器需要加上脉冲电压才能持续发声。在电子设计中,常用有源蜂鸣器进行各种各样的报警提示。而用无源蜂鸣器来产生各式各样的音频信号(比如用来演奏简单的乐曲)。
★ 有源蜂鸣器和无源蜂鸣器各自的工作工作来源
在此笔者用自己的话表述:
1、 首先大家肯定都知道,物质发声肯定是通过某种介质的振动而产生的。那么这种介质是什么呢,对,空气。
2、 那是什么使得空气产生振动呢?对于压电式(有源)蜂鸣器来说,是它内部的蜂鸣片;而对于电磁式蜂鸣器来说,则是它内部的振动膜片。
3、 现在有了起振源,有了传输介质,接下来就要看看这两种蜂鸣器怎么让起振源产生振动了:
1、 首先是压电式(有源)蜂鸣器:
先讲讲压电效应:这个世界上有一种材料叫做压电材料,一般常见的是各种压电陶瓷。这种材料的特别之处在于,当电压作用于压电材料时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生电荷。就是说这种材料能把机械变形和电荷相互转化。是不是很神奇?
压电式蜂鸣器里面的起振片,就是一种压电陶瓷。如上所述,要让它振动,除了压电陶瓷本身,还需要适当大小和频率变化的电压作用于压电陶瓷。怎么产生变化的电压呢?对了,振荡器。压电式(有源)蜂鸣器内部带有多谐振荡器,可以产生1.5—2.5kHZ的电压信号。如此压电式蜂鸣器发声的全部条件都集齐了。
2、电磁式(无源)蜂鸣器:
这里要用到电磁感应原理,不知道各位对高中年代的知识是否还记得,简单的说就是:即变化的磁场会产生电场,而变化的电场又会产生磁场。其产生的电场或者磁场强度取决于变化的快慢,即频率(此处先把各种条件都设置为理想化)。
电磁式蜂鸣器的振动片式是一种可以被磁场吸引的金属片。在电磁式蜂鸣器内部,振动片位于一块永磁体和一个电磁线圈之间(这句话很重要,要想象出来),那么如何让它振动呢?很简单,靠两边的磁性将其左右吸引扯动,它就是一种振动的状态了。想象你张开两手分别一人扯一边,左来右往,你在中间会不会觉得很晃?好,既然它的一边是永磁体,那么我们只需要将其另一边的线圈电磁场不断的变化,这样振动片的受力就变化了,于是它的运动状态也就改变了。
所以关键是,让线圈产生的电磁场变化。如何做到?看到电磁感应原理:其产生的电场或者磁场强度取决于变化的快慢,即频率。对,给线圈通过频率变化的电流,它就产生了不同的磁场,继而改变振动片的运动状态,达到振动的目的。如何产生改变的电流?这点就是电磁式(无源)蜂鸣器和压电式(有源)蜂鸣器在结构上最大的不同之处:无源蜂鸣器内部并没有集成振荡器!所以,要在外部电路产生频率变化的电流(其实也就是电压)。
这就是为什么,有源蜂鸣器通直流可以鸣响,而无源蜂鸣器要电流脉冲才能驱动。要说各自的优缺点呢,有源蜂鸣器驱动简单,而且听起来似乎比较响亮,无源蜂鸣器驱动起来稍微困难,但是可以发出不同音调的声音,所以它能演奏简单的乐曲。
PS:音调:声音频率的高低叫做音调。
好了,关于蜂鸣器的种种,知道以上内容,基本够用,当然如果你要造一个蜂鸣器的话,还是得去剖析它的内部结构的。
CEPARK AVR开发板上集成的是无源蜂鸣器,以下是电路原理图(看不清楚请放大):
这个电路有点意思,不见得一眼就看的清澈。
1、首先这个电路只需要占用一个IO口PD5,R24和R25是用以调整三极管8550的静态工作点的。
2、为什么要用三极管呢,是因为虽然AVR的IO口驱动能力仍不足以驱动无源蜂鸣器,所以要接一个三极管将电流放大,再驱动蜂鸣器。
3、重点说说二极管1N4007,图中的D2,这个二极管在此叫做续流二极管。我分析一下它的作用:当PD5输出直流电驱动蜂鸣器时,注意此二极管承载反向压降,处于截止状态,即当蜂鸣器在工作时,D2处可以看做开路。当PD5停止驱动蜂鸣器,注意到上文提到的无源蜂鸣器里面有电磁感应线圈,这个线圈会因自感现象产生与原来压降的方向相反的感应电动势。此时D2加载感应电动势,处于正向压降,因此处于导通状态,继而将感应电动势逐渐在电路中消耗掉。那么因自感产生的感应电动势消耗在哪里呢?答案是消耗在二极管和蜂鸣器组成的回路里。
为什么要用这个续流二极管呢?如果不用,自感产生的反向感应电动势有可能将电路中的其他器件比如上图的三极管击坏。特别是在高压工作的电路中,此二极管必不可少。而如果电路中工作电压较大,要使用耐压值较大的二极管,而如果电路工作频率高,则要选用高速的二极管。
PS:自感现象,流过线圈的电流发生变化,导致穿过线圈的磁通量发生变化而产生的自感电动势, 总是阻碍线圈中原来电流的变化,当原来电流在增大时,自感电动势与原来电流方向相反;当原来电流减小时,自感电动势与原来电流方向相同。因此,简单地说,由于导体本 身的电流发生变化而产生的电磁感应现象,叫做自感现象。
好,我们的任务很简单,在PD5产生电压脉冲,就可以将蜂鸣器鸣响了:
程序太短,就不以附件上传了,希望各位看了之后若觉得有点收获,就表示支持一下:
- #include
- #include
- #define BUZZ PD5
- int main(void)
- {
- PORTD = 0xFF;
- DDRD = 0xFF; //端口初始化
- while(1) //大循环不断产生脉冲
- {
- PORTD &= ~(1<
- _delay_us(1000); //延时完成一次脉冲上半周期
- PORTD |= (1<
- _delay_us(1000); //延时完成一次脉冲下半周期
- }
- }
嗯,是不是比你想的还要短?
例行的补充几点:
1、 我们说给蜂鸣器提供脉冲信号它会工作,但是不是任何脉冲信号它都可以工作,比如周期过长,频率过高的脉冲都有可能无法使他工作。我测试了一下,CEPARK AVR板子上的蜂鸣器在1MHz的脉冲频率下就无法发出声音了。
2、 就上述程序来说,半周期的时间约短,它发出的声音就越尖,但是声音同时就越小,相反半周期的时间如果越长,声音听起来越低沉,但是越大声。大家可以亲自试试。
3、此外用脉冲宽度调制(PWM)波形才是驱动无源蜂鸣器的理想方案,大家不能满足于这种简单的驱动方法。
希望能给有需要的朋友一点帮助。