蜂鸣器(有源压电式)
电子讯响器 · 三极管驱动 · IO 口开关控制
一、理论基础
1.1 传感器概述
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
本系统采用的是有源压电式蜂鸣器。
1.2 蜂鸣器分类
| 分类维度 | 类型 | 说明 |
|---|---|---|
| 结构 | 压电式 | 压电陶瓷压电效应带动金属片振动发声 |
| 结构 | 电磁式 | 电磁线圈通电产生磁场驱动振膜发声 |
| 驱动 | 有源 | 内含振荡驱动电路,直接给电压即可发声 |
| 驱动 | 无源 | 需外部提供方波驱动信号才能发声 |
有源 vs 无源:"有源"是指蜂鸣器本身内含驱动电路,直接给它一定的电压就可以响;"无源"是需要靠外部的驱动(方波信号)才可以响。
1.3 压电式蜂鸣器工作原理
压电式蜂鸣器以压电陶瓷的压电效应来带动金属片的振动而发声。主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
多谐振荡器产生特定频率的振荡信号,驱动压电蜂鸣片产生机械振动,经共鸣箱放大后发出声音。
1.4 典型应用
- 报警器(安防、烟雾、燃气报警)
- 电子玩具、游戏机
- 定时器、倒计时提醒
- 汽车电子(倒车雷达、安全带提醒)
- 计算机、打印机提示音
- 物联网设备状态提示
二、实验实例:蜂鸣器控制
2.1 实验目的
- 掌握蜂鸣器的控制原理
- 掌握蜂鸣器控制程序的编程方法
2.2 实验内容
在 IAR 集成开发环境中编写蜂鸣器控制程序,控制蜂鸣器循环鸣叫与停止。
2.3 预备知识
- 了解 C 语言的基本知识
- 了解 IAR 中编写和调试程序的方法
- 了解 GPIO 输出控制的基本原理
2.4 实验设备
- 硬件:WSN-V 教学实验箱(带指示扩展板)、PC 机
- 软件:Windows + IAR EW for 8051
2.5 驱动电路
当 P0.7 输出高电平时,三极管 Q1(2N5551)导通,蜂鸣器上电而鸣叫;当 P0.7 输出低电平时,三极管 Q1 截止,蜂鸣器不通电并停止鸣叫。

电路说明:
- BUZZER1 为有源压电式蜂鸣器,VCC3.3 供电
- Q1(2N5551)为 NPN 三极管,作开关驱动
- R11(100Ω)为蜂鸣器限流电阻
- R9(2K)为基极限流电阻,R10(10K)为基极下拉电阻
- P0.7 控制三极管基极,高电平导通
2.6 关键代码
c
void main(void)
{
P0DIR = (0x01<<0)|(0x01<<7); // P0.0, P0.7 为输出方式
P2DIR |= 0x01; // 设置 P2.0 为输出方式
while(1)
{
P0_7 = 1; // 打开蜂鸣器
P0_0 = 0;
P2_0 = 0;
delay();
P0_7 = 0; // 关闭蜂鸣器
P0_0 = 1;
P2_0 = 1;
delay();
}
}2.7 实验步骤
- 连接好仿真器,及带指示扩展板的通用调试母板
- 新建工程 Buzzer,添加相应文件并修改工程设置
- 创建 Buzzer.c 并加入到工程中
- 编写 Buzzer 相关函数,在设定的间隔时间内控制蜂鸣器循环鸣叫和停止鸣叫
- 编译下载运行,观察蜂鸣器鸣叫和停止鸣叫
2.8 实验现象
- 蜂鸣器鸣叫时,通用调试母板上发光二极管 D2、D3 亮
- 蜂鸣器停止鸣叫时,通用调试母板上的发光二极管 D2、D3 灭
- 蜂鸣器按设定的间隔时间循环"鸣叫—停止—鸣叫—停止"
知识点
有源蜂鸣器只需给直流电压即可发声,控制简单,但只能发出固定频率的声音。无源蜂鸣器需要外部提供 2~5kHz 的方波驱动信号,可以通过改变方波频率演奏不同音调(音乐)。如果需要播放音乐或复杂音效,应选用无源蜂鸣器并用 PWM/定时器产生不同频率的方波。
内容来源:《WSN-V 物联网综合教学实验指导书》第 7 章·7.1 蜂鸣器控制实验,结合课程教学经验整理。