您现在的位置是:首页 > 科技前沿
高级单片机实战开发-蜂鸣器
智慧创新站
2025-04-12【科技前沿】96人已围观
简介一、蜂鸣器的类型和原理1.压电式使用压电陶瓷片作为发声器件,通过给压电陶瓷加交流信号发声2.电磁式通过线圈产生的磁场和磁铁作用,类似于扬声器的工作原理3.贴片式有贴片和直插安装方式4.有源蜂鸣器加电就响,内置信号发生器驱动发声器件,一般的音调都是固定的。5.无源蜂鸣器加电后有咔嚓声,要用2-5K的方...
一、蜂鸣器的类型和原理
1.压电式
使用压电陶瓷片作为发声器件,通过给压电陶瓷加交流信号发声
2.电磁式
通过线圈产生的磁场和磁铁作用,类似于扬声器的工作原理
3.贴片式
有贴片和直插安装方式
4.有源蜂鸣器
加电就响,内置信号发生器驱动发声器件,一般的音调都是固定的。
5.无源蜂鸣器
加电后有咔嚓声,要用2-5K的方波驱动。无源蜂鸣器的声调会随着外加方波的频率而改变。
二、蜂鸣器产品参数
下面是某一蜂鸣器的具体参数:
★尺寸(size):φ30mm×19.5mm
★电压范围(VoltageRange):3-20VDC
★额定电压(RatedVoltage):12VDC
★使用频率(frequency):3600±500Hz
★声压(SPL):(12VDC/30cm)
★电流(Current):≤50mA
★成品重量(weight):2g
★支持定制:XXXXXX
三、蜂鸣器的检测
1.有源与无源的区分
(1)外形区别
有源蜂鸣器
无源蜂鸣器
两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。
(2)电参数的区别
把可调电源设定到蜂鸣器的额定电压,一般的常见蜂鸣器额定电压为1.5v、5v、10v、12v这几种,串联一个100-200欧姆的限流电阻,给蜂鸣器加电,有源蜂鸣器会连续的发出滴滴的声音,或者有规律的滴滴声音。
无源蜂鸣器只在接通或者断开电源的瞬间有咔咔声
使用万用表,测量蜂鸣器的电阻,有源蜂鸣器电阻比较大,一般的都在几百欧以上,无源的蜂鸣器阻值在8、16欧姆左右。
2.好坏的检测
使用可调电源调至蜂鸣器的额定电压,串联100欧姆电阻,有源蜂鸣器加上额定电压和电流后如果不能产生明亮的滴滴声,如果声音不正常或者不发声,说明质量不良或者已经损坏。
无源蜂鸣器的测试,使用信号发生器调至2KHz,信号经过100欧姆限流电阻后加到蜂鸣器上,如果蜂鸣器发出明亮的滴声,说明产品是良好的,反之如果声音不正常或者干脆没有声音,说明有蜂鸣器不良或者故障。
四、驱动电路的设计
我们为了使用更多的功能,因此使用无源蜂鸣器。
1.为什么要用三极管?
因为单片机的IO驱动电流较小,直接驱动容易损坏单片机,所以要用三极管来扩大电流
2.用什么样的三极管?
MPSA92三极管参数:
VCEO:-300V
VCBO=-300V
IC=-500mA
PD=625mA
hFE=最小25
三极管的选择,因为单片机上电是高电平,因此选用PNP的三极管,上电后蜂鸣器并没有电流,只有在驱动的控制下才会导通。蜂鸣器的工作电流通常在100mA以下,此蜂鸣器工作电流设定为25mA,因此MPSA92是能够满足的,而且也是常用的型号。
3.电阻R2的计算
设计三极管IC电流25mA,三极管的放大倍数取最小值25,所以基极电流为1mA,
R2=(5-0.7)/0.001=4.3K
功率:4.3*0.001=0.0043W使用1/8W足够,其它温度系数和耐压也没有问题
五、驱动程序
//-----------------------------------------------------------------
//名称:蜂鸣器驱动
//设计:非凡创客
//日期:2015-05-01
//版本:
//-----------------------------------------------------------------
defineuncunsignedchar
#defineuniunsignedint
sbitBUZER=P3^0;//蜂鸣器驱动引脚的定义
//-----------------------------------------------------------------
//毫秒延时程序
//-----------------------------------------------------------------
voidDL(unix)
{unct;while(x--)for(t=0;t120;t++);
}
//-----------------------------------------------------------------
//蜂鸣器驱动程序
//-----------------------------------------------------------------
voidBUZ()
{
unct;
for(t=0;t50;t++)
{
DL(1);
BUZER=~BUZER;
}
}
//-----------------------------------------------------------------
//主程序
//-----------------------------------------------------------------
voidmain()
{
while(1)
{
BUZ();
}
}
本文属于原创首发,未经授权,请勿用于商业用途!
很赞哦!(144)
上一篇:AWE黑科技大盘点:AI、智能床与裸眼3D,泰酷辣!
下一篇:模电数电知识总结