ESP32-S3 控制 蜂鸣器
ESP32-S3 控制蜂鸣器实验
一、实验简介
蜂鸣器是一种常见的声音输出设备,广泛应用于提示音、报警音等场景。
本实验将使用 ESP32-S3 控制一个有源蜂鸣器,使其发出声音,从而掌握单片机数字输出控制的基本方法。
二、硬件准备
- ESP32-S3 开发板 × 1
- 有源蜂鸣器模块 × 1
- 杜邦线若干
- USB 数据线 × 1(用于连接电脑)
三、接线说明
蜂鸣器模块一般有两根引脚:
- BEEP(信号控制端)
- GND(地)
本实验接线方式如下:
| 蜂鸣器引脚 | ESP32-S3 引脚 |
|---|---|
| BEEP | GPIO15 |
| GND | GND |
接线示意:
(蜂鸣器 BEEP) --> (ESP32-S3 GPIO15)
(蜂鸣器 GND) --> (ESP32-S3 GND)
四、代码实现
// 定义蜂鸣器控制管脚
#define beep_pin 15
char g_i = 0;
void setup() {
// 设置蜂鸣器控制引脚为输出模式
pinMode(beep_pin, OUTPUT);
}
void loop() {
// 翻转状态,控制电平高低切换
g_i = !g_i;
digitalWrite(beep_pin, g_i);
// 延时 250 微秒,形成方波
delayMicroseconds(250);
}
五、代码解析
-
#define beep_pin 15
将蜂鸣器控制引脚定义为 GPIO15,便于后续代码维护和修改。 -
pinMode(beep_pin, OUTPUT)
将该引脚设置为输出模式,这样 ESP32-S3 才能输出高低电平信号去驱动蜂鸣器。 -
g_i = !g_i
这是一个取反操作,每次循环都会切换 0/1,从而让输出电平高低交替变化。 -
digitalWrite(beep_pin, g_i)
根据g_i的值输出高(1)或低(0)电平,控制蜂鸣器的响与不响。 -
delayMicroseconds(250)
延时 250 微秒,形成大约 2kHz 的方波频率(因为一个高低电平周期约 500 微秒)。有源蜂鸣器只需要合适频率的方波即可发声。
六、实验现象
将程序下载到 ESP32-S3 后,蜂鸣器会发出持续的“滴——”声,说明控制正常。你也可以调整 delayMicroseconds() 的值,改变声音的频率和音调。
七、注意事项
- 有源蜂鸣器自带震荡电路,只需输入高低电平即可发声;若使用无源蜂鸣器,需要通过 PWM 生成不同频率的波形来驱动。
- 连接蜂鸣器时注意极性,BEEP 接信号脚,GND 接地。
- GPIO15 在某些 ESP32-S3 开发板上是可用的普通 IO,但在部分模块可能有启动功能占用,建议查看开发板原理图。
八、总结
本实验通过控制 GPIO 输出高低电平,驱动有源蜂鸣器发声,帮助我们理解了单片机数字输出的基本原理。
进一步可以结合按键、传感器等输入设备,实现更多交互功能,比如报警器、倒计时提示等。

浙公网安备 33010602011771号