1. 蜂鸣器是谁?
蜂鸣器是1903年由工程师H.S. Warren发明雏形 ,是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。
这个指甲盖大小的元件,承包了你生活中80%的电子提示音!只会说"滴滴""嘟嘟",却是国际通用电子语。
2.蜂鸣器的分类
蜂鸣器的分类可从工作原理、驱动方式、应用特性等维度进行划分,如下:
(1)按工作原理分为压电式蜂鸣器和电磁式蜂鸣器;
(2)按驱动方式分为有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器);
(3)按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器);
插针式(DIP):传统焊接方式,适用于低频场景。
贴片式(SMD)**:适应高频PCB布局,体积更小。
(4)按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。
(5)按功能与结构分为单音蜂鸣器、多音蜂鸣器、共振蜂鸣器、可编程蜂鸣器
单音蜂鸣器:输出固定频率声音,适用于简单提示场景;
多音蜂鸣器:支持频率编程,可合成多种音效,用于工业控制系统;
共振蜂鸣器:利用共振腔放大特定频率声音,如超声波测距传感器;
可编程蜂鸣器:通过MCU控制输出节奏和音调,灵活性高。
(6)按特殊用途分超声波蜂鸣器、薄膜蜂鸣器
超声波蜂鸣器:频率超过20kHz,用于非接触检测;
薄膜蜂鸣器:超薄设计,集成于可穿戴设备。
压电式蜂鸣器
组成:由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
核心原理:利用压电陶瓷的逆压电效应(施加电场时形变振动)发声,由多谐振荡器、压电陶瓷片、共鸣箱组成。
特点:
◦ 功耗低(3-24V直流驱动),体积小,适合高频(1.5-2.5kHz)场景;
◦ 耐高温,常用于电子手表、贺卡、报警器等小型设备。
电磁式蜂鸣器
组成:由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成,接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
核心原理:通过电磁线圈与永磁铁相互作用,带动振动膜片发声。
特点:
◦ 声压大(85-120分贝),适合低频(100-500Hz)嘈杂环境;
◦ 需驱动电流较大,常见于计算机、打印机工业报警器、汽车电子等。
有源蜂鸣器和无源蜂鸣器
注意:这里的“源”不是指电源,而是指震荡源。
也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K-5K的方波去驱动它;
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
有源蜂鸣器
•特点:内置振荡电路,通电即发声(固定频率),驱动简单但灵活性低。
•识别:外壳多为黑色,电阻值较高(几百Ω)。
•应用:单一警报声场景,如家电提示音。
无源蜂鸣器
• 特点:需外部提供脉冲信号(1.5-5kHz),频率可调,可模拟音乐。
• 识别:外壳电路板为绿色,电阻值低(8Ω或16Ω)。
• 应用:需复杂音效的场景,如电子玩具、音乐播放器。
3. 发声原理大揭秘
电磁式蜂鸣器(常见于无源蜂鸣器)
结构:由线圈、磁铁、振动膜片组成。
-
原理:
-
电流通过线圈产生磁场,与内部磁铁相互作用。
-
磁场力驱动振动膜片周期性振动,推动空气发声。
-
改变电流频率可调整振动频率,从而改变音调。
-
压电式蜂鸣器(常见于有源蜂鸣器)
-
结构:由压电陶瓷片和金属振动片组成。
-
原理:
-
压电陶瓷在电压作用下发生形变(压电效应)。
-
形变带动金属片振动,产生声波。
-
固定频率的振荡电路控制振动频率。
-
4. 如何让蜂鸣器唱歌?
由于有源蜂鸣器频率固定,声音单一,所以如果想用蜂鸣器唱歌的话,需要使用无源蜂鸣器。
驱动电路
主控引脚可直接连接蜂鸣器进行控制发声,若蜂鸣器声音小,可使用三极管(如8050)或MOSFET放大信号。
音乐原理
-
音高与频率
-
每个音符对应一个频率(如中央C音频率为262Hz)。
-
常见音阶频率表(C调):
音符 C4 D4 E4 F4 G4 A4 B4 C5 频率 262 294 330 349 392 440 494 523
-
-
节拍与时值
-
音乐节奏由音符的持续时间决定(如全音符、二分音符、四分音符等)。
-
示例:若四分音符=500ms,则二分音符=1000ms,八分音符=250ms。
-
代码实现(以Arduino为例)
1. 定义音符频率和节拍
// 定义C调音符频率(单位:Hz)
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
// 示例乐谱《小星星》的音符和节拍
int melody[] = {
NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4,
NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4
};
int noteDurations[] = {
4, 4, 4, 4, 4, 4, 2, // 四分音符=4,二分音符=2
4, 4, 4, 4, 4, 4, 2
};
2. 播放音乐的主程序
void setup() {
pinMode(9, OUTPUT); // 蜂鸣器接D9
}
void loop() {
for (int i = 0; i < sizeof(melody)/sizeof(int); i++) {
// 计算音符持续时间(假设四分音符=500ms)
int duration = 1000 / noteDurations[i];
// 播放当前音符
tone(9, melody[i], duration);
// 音符间隔(增加10%的停顿,避免粘连)
delay(duration * 1.1);
// 停止发声
noTone(9);
}
delay(2000); // 循环间隔
}
代码实现(STM32为例)
1. 配置定时器(以TIM3为例):
-
选择TIM3,设置模式为PWM Generation CH1。
-
预分频器(Prescaler):根据主频计算(如72MHz主频,目标频率262Hz):
Prescaler = 72 - 1; // 分频后时钟=1MHz Counter Period (ARR) = (1MHz / 目标频率) - 1
-
初始占空比设为50%(Pulse = ARR / 2)。
-
开启定时器:
在
main.c
中调用HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1)
。
2. 定义音符频率表
// C调音阶频率表(单位:Hz)
const uint16_t Note_Freq[] = {
262, 294, 330, 349, 392, 440, 494, 523 // C4~C5
};
// 示例乐谱《小星星》(音符索引和节拍)
const uint8_t Melody[] = {0, 0, 4, 4, 5, 5, 4, 3, 3, 2, 2, 1, 1, 0};
const uint8_t Note_Duration[] = {4,4,4,4,4,4,2, 4,4,4,4,4,4,2}; // 四分音符=4
3. PWM频率动态调整函数
void Set_PWM_Freq(uint32_t freq) {
if (freq == 0) {
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 0); // 关闭输出
return;
}
uint32_t arr = (1000000 / freq) - 1; // 预分频后时钟=1MHz
__HAL_TIM_SET_AUTORELOAD(&htim3, arr);
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, arr / 2); // 占空比50%
}
4. 主程序播放逻辑
int main(void) {
HAL_Init();
SystemClock_Config();
MX_TIM3_Init();
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
while (1) {
for (int i = 0; i < sizeof(Melody); i++) {
uint16_t freq = Note_Freq[Melody[i]];
uint16_t duration = 500 / Note_Duration[i]; // 四分音符=500ms
Set_PWM_Freq(freq); // 设置频率
HAL_Delay(duration); // 持续发音
Set_PWM_Freq(0); // 停止发音
HAL_Delay(50); // 音符间隔
}
HAL_Delay(2000); // 循环间隔
}
}
注意:如果想要好的音效,建议使用扬声器!
5. 选型建议
口诀:电磁式低频声大,压电式高频声小,有源则声单一,无源则声多变
"要便宜选电磁,求省电找压电;高频场景压电强,低频应用电磁香"
• 低频高音量:优先选电磁式蜂鸣器(如工业报警);
• 高频轻量化:选压电式蜂鸣器(如电子门铃);
• 复杂音效控制:无源蜂鸣器配合PWM信号驱动;
• 快速部署:有源蜂鸣器直接接直流电源。