蜂鸣器的介绍:
单片机开发板上蜂鸣器分为两种:一种称之为有源蜂鸣器,另一种是无源蜂鸣器
从外表来看,无源蜂鸣器是外部可以看到有电路板的蜂鸣器,而有源蜂鸣器则是使用了黑胶封装起来。
按照功能使用用途,蜂鸣器又可以分为电磁式蜂鸣器和压电式蜂鸣器
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。
接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成,多谐振荡器由晶体管或集成电路构成,当接通电源后 (1.5~15V直流工作电压),多谐振荡器起振.输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
电磁式蜂鸣器就是我们使用到的有源蜂鸣器,而压电式蜂鸣器就是无源蜂鸣器,与之相比,有源蜂鸣器多的一个器件就是振荡器,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须要输出一定的脉冲频率才可以使得蜂鸣器鸣叫。使用单片机来控制蜂鸣器时,还需要将信号进行放大之后才可以驱动起蜂鸣器,因为单片机IO引脚输出的电压不足以供得起蜂鸣器工作,所以要经过放大电路之后才可以带的动起来。
无源蜂鸣器是没有正负之分的,类似于喇叭,只要在两个腿上加载不同的频率的电信号就可以实现发声,根据不同的频率所发出的声音也是不一样的。
有源蜂鸣器是有正负之分的,只需要在两个腿上加上电压信号就会发声,发出的声音音调单一、频率固定。
如何控制蜂鸣器的工作?
事实上,我们明白了原理之后,可以根据原理出发,改变单片机引脚输出的工作频率,从而改变蜂鸣器鸣叫的音调。还可以改变输出电平的占空比,从而改变蜂鸣器输出声音的大小。
对于单片机来说,我们可用采用大林顿晶体管来控制蜂鸣器,这样就可以解决由于单片机引脚输出电压带不动蜂鸣器的问题了。
达林顿晶体管阵列
ULN2003是一个单片高电压、高电流的达林顿晶体管阵列集成电路。它是由7对NPN达林顿管组成的,它的高电压输出特性和阴极箝位二极管可以转换感应负载。单个达林顿对的集电极电流是500mA。达林顿管并联可以承受更大的电流。此电路主要应用于继电器驱动器,字锤驱动器,灯驱动器,显示驱动器(LED气体放电),线路驱动器和逻辑缓冲器。
ULN2003的每对达林顿管都有一个2.7kΩ串联电阻,可以直接和TTL或5V CMOS置。
主要特点
* 500mA 额定集电极电流(单个输出)
* 高电压输出:50V
* 输入和各种逻辑类型兼容
* 继电器驱动器
ULN2003芯片怎么驱动无源蜂鸣器呢?
一种简单的方法是利用ULN2003芯片的开关特性和外部的方波信号源。方波信号源可以是一个单稳态触发器、一个555定时器或者一个微控制器等。方波信号源的频率决定了无源蜂鸣器的音调,方波信号源的占空比决定了无源脉冲的宽度。
VCC是电源正极,GND是电源负极,IN3是ULN2003芯片的第一路输入端,OUT1是ULN2003芯片的第一路输出端,BZ是无源蜂鸣器。方波信号源通过R1连接到IN3,R3是为了限制输入端的电流而加的保护电阻。当方波信号源输出高电平时,IN3接收到高电平信号,OUT3导通,BZ两端有电压差,发出声音。当方波信号源输出低电平时,IN3接收到低电平信号,OUT3截止,BZ两端没有电压差,停止发声。这样就形成了一个周期性的声音驱动过程。
程序编写:
#include<reg52.h>
sbit beer=P2^0;
void delay(int i)
{
while(i--);
}
void main()
{
while(1)
{
beer=~beer; //通过取反延时,可用使得单片机引脚输出的信号是一个波形信号
delay(10000);
}
}
工控小新
在实际应用场合上,蜂鸣器的用途可谓是很常见的,一般来说都会选择使用蜂鸣器作为报警提示,或者作为一个信号反馈状态,比如出现故障报警、开始启动提示等等。