一、蜂鸣器介绍
- 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于电子产品中作为发声器件。(如:计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器)
- 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
压电式蜂鸣器(无源蜂鸣器)
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5 ~ 15V 直流工作电压),多谐振荡器起振,输出 1.5~5kHz 的脉冲信号,阻抗匹配器推动压电蜂鸣片发声。
电磁式蜂鸣器(有源蜂鸣器)
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
- 源不是指电源,是指内部是否自带震荡结构,只需要提供电源就可以发出声音
视图
左图是压电式蜂鸣器,右图是电磁式蜂鸣器
- 无源蜂鸣器可以看到电路板裸露在外,电磁式蜂鸣器已经封装好
- 通常无源蜂鸣器体积稍大一些
区别
- 对于无源蜂鸣器,如果改变频率就可以调节蜂鸣器音调,产生各种不同音色、音调的声音。如果改变输出电平的高低电平占空比,则可以改变蜂鸣器的声音大小。
- 对于有源蜂鸣器,通常内部已经固定了频率,对于调节频率或占空比可能改变不了蜂鸣器的音调和音量,当然也有的有源蜂鸣器可以实现和无源蜂鸣器一样的效果。
- 其实一句话就可概括它们之间的区别,想要压电式蜂鸣器发声,需提供一定频率的脉冲信号;想要电磁式蜂鸣器发声,只需提供电源即可。
- 注意:有源与无源指的是内部有无LCD振荡电路。
二、硬件电路
- STM32F103系列芯片最大输出电流25mA,蜂鸣器的驱动电流大约是30mA左右才能使其发声。
- 整个芯片最大输出电流是150mA,分配给蜂鸣器30mA,对于其他外设和IO口电流就非常小了,所以不直接使用IO口来驱动蜂鸣器,而是通过三极管把电流放大之后再驱动蜂鸣器,这样STM32的IO口只需要1mA不到的电流就可以驱动蜂鸣器。
- 所以在使用STM32芯片的时候,通常就是用来做控制,而不是用来做驱动
- 根据电路,输出高电平可以使蜂鸣器发声,低电平让蜂鸣器关闭
三、软件设计
程序主要框架
- 使能蜂鸣器对应GPIO时钟,并初始化GPIO相关参数
- 主函数控制蜂鸣器发声
创建文件
- 在APP文件夹下创建BEEP蜂鸣器文件,在其中创建beep.c和beep.h文件
- 将beep.c文件添加到APP文件中,并添加其对应的头文件路径
beep.c文件
beep.h文件
main.c文件
文档信息
- 本文作者:magicianplus
- 本文链接:https://magicianplus.github.io/2024/12/18/%E7%AC%AC13%E7%AB%A0-%E8%9C%82%E9%B8%A3%E5%99%A8%E5%AE%9E%E9%AA%8C/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)