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);
}

五、代码解析

  1. #define beep_pin 15
    将蜂鸣器控制引脚定义为 GPIO15,便于后续代码维护和修改。

  2. pinMode(beep_pin, OUTPUT)
    将该引脚设置为输出模式,这样 ESP32-S3 才能输出高低电平信号去驱动蜂鸣器。

  3. g_i = !g_i
    这是一个取反操作,每次循环都会切换 0/1,从而让输出电平高低交替变化。

  4. digitalWrite(beep_pin, g_i)
    根据 g_i 的值输出高(1)或低(0)电平,控制蜂鸣器的响与不响。

  5. delayMicroseconds(250)
    延时 250 微秒,形成大约 2kHz 的方波频率(因为一个高低电平周期约 500 微秒)。有源蜂鸣器只需要合适频率的方波即可发声。

六、实验现象

将程序下载到 ESP32-S3 后,蜂鸣器会发出持续的“滴——”声,说明控制正常。你也可以调整 delayMicroseconds() 的值,改变声音的频率和音调。

七、注意事项

  • 有源蜂鸣器自带震荡电路,只需输入高低电平即可发声;若使用无源蜂鸣器,需要通过 PWM 生成不同频率的波形来驱动。
  • 连接蜂鸣器时注意极性,BEEP 接信号脚,GND 接地。
  • GPIO15 在某些 ESP32-S3 开发板上是可用的普通 IO,但在部分模块可能有启动功能占用,建议查看开发板原理图。

八、总结

本实验通过控制 GPIO 输出高低电平,驱动有源蜂鸣器发声,帮助我们理解了单片机数字输出的基本原理。

进一步可以结合按键、传感器等输入设备,实现更多交互功能,比如报警器、倒计时提示等。

posted @ 2025-08-15 18:52  jeikerxiao  阅读(232)  评论(0)    收藏  举报