蜂鸣器的介绍
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件.
有源蜂鸣器和无源蜂鸣器的根本区别是产品对输入信号的要求不一样;有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从面实出磁场交变,带动钼片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。
按其驱动方式的不同,可分为:有源蜂鸣器(内含驱动线路)和无源蜂鸣器(外部驱动)
教你区分有源蜂鸣器和无源蜂鸣器,现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。有源蜂鸣器和无源蜂鸣器的外观如图a、b所示。a)有源 b)无源。
2、工作原理
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,本实验用的蜂鸣器内部带有驱动电路,所以可以直接使用。当不蜂鸣器连接的引脚为高电平时,内部驱动电路导通,蜂鸣器发出声音;当不蜂鸣器连接的引脚为低电平,内部驱动电路截止,蜂鸣器不发出声音。
3、蜂鸣器的连线
本实验用的蜂鸣器内部带有驱动电路,所以可以直接将蜂鸣器的正极连接到数字口,蜂鸣器的负极连接到GND插口中。如下图:
程序如下:
#define LED 13
#define KEY 2
#define Buzzer 3
int KEY_NUM = 0; //按键键值变量
void setup()
{
pinMode(LED,OUTPUT); //LED为IO输出
pinMode(KEY,INPUT_PULLUP);//按键为IO带上拉输入
pinMode(Buzzer,OUTPUT); //蜂鸣器为IO输出
digitalWrite(Buzzer,LOW); //蜂鸣器初始为不鸣叫
}
void loop()
{
ScanKey(); //按键扫描
if(KEY_NUM == 1) //当有按键按下时
{
digitalWrite(LED,!digitalRead(LED)); //LED状态翻转
}
}
void ScanKey()
{
KEY_NUM = 0;
if(digitalRead(KEY) == LOW)
{
delay(20); //延时去抖动
if(digitalRead(KEY) == LOW)
{
BuzzerDi(); //滴一声
KEY_NUM = 1; //设置键值
while(digitalRead(KEY) == LOW); //松手检测
}
}
}
void BuzzerDi()
{
digitalWrite(Buzzer,HIGH); //蜂鸣器响
delay(20); //延时20ms
digitalWrite(Buzzer,LOW); //蜂鸣器关闭
}