搜索代码

ESP32教程13/55 - 使用有源蜂鸣器让Arduino发出蜂鸣声 | SunFounder的ESP32物联网学习套件

ESP32教程13/55 - 使用有源蜂鸣器让Arduino发出蜂鸣声 | SunFounder的ESP32物联网学习套件

在本教程中,我们将学习如何使用ESP32微控制器和晶体管控制有源蜂鸣器。该项目涉及打开和关闭蜂鸣器,产生蜂鸣声。借助ESP32内置的Wi-Fi和蓝牙功能,您将来可以将此项目扩展为更复杂的物联网应用。

我们将使用的组件包括ESP32开发板、有源蜂鸣器、晶体管(S8050)和电阻。通过正确连接这些组件,我们可以通过ESP32控制蜂鸣器的声音。此外,我们将简要介绍使该项目运行所需的接线和代码。如需进一步说明,请务必查看本教程附带的视频(视频中00:00处)。

S87050_transistor

硬件说明

该项目的主要组件包括ESP32微控制器、有源蜂鸣器和S8050晶体管。ESP32是一款功能强大的微控制器,具有Wi-Fi和蓝牙功能,可支持各种物联网项目。有源蜂鸣器在施加电压时产生声音,而S8050晶体管充当开关,通过ESP32的低电压信号控制蜂鸣器。

晶体管有三个引脚:集电极、基极和发射极。当通过电阻向基极引脚施加电压时,电流可以从集电极流向发射极,从而为蜂鸣器供电。这种设置确保我们可以安全地控制蜂鸣器,而不会使ESP32的GPIO引脚过载。

ESP32-13-buzzer-schematic

数据手册详情

制造商 SunFounder
零件编号 TMBB 12 A05
工作电压 3–8 V
额定电压 5 V
最大电流 30 mA
振荡频率 2700 ± 300 Hz

 

  • 使用1 kΩ电阻限制流向晶体管基极的电流。
  • 确保有源蜂鸣器的正负端子连接正确。
  • 仔细检查引脚连接,防止短路。
  • 使用面包板以便于连接和调整。
  • 蜂鸣器可在3.3V和5V电压下工作,但请根据电路需求供电。

接线说明

ESP32-13-buzzer-wriing

要连接组件,首先将有源蜂鸣器插入面包板。将蜂鸣器的正极端子连接到ESP32上的3.3V引脚。蜂鸣器的负极端子应连接到S8050晶体管的集电极引脚。接下来,将S8050晶体管插入面包板,确保平面朝您。左侧引脚(集电极)连接到蜂鸣器的负极端子,中间引脚(基极)连接到1 kΩ电阻,右侧引脚(发射极)连接到地。

现在,将1 kΩ电阻的另一端连接到ESP32上的GPIO 14引脚。最后,将晶体管的发射极引脚连接到面包板上的接地轨。确保所有连接牢固,并在给电路通电前仔细检查引脚对齐。

代码示例与讲解

以下是控制蜂鸣器的代码简要概述。首先,我们定义连接到蜂鸣器的引脚:

const int buzzerPin = 14; // 蜂鸣器引脚

此行设置变量buzzerPin以引用ESP32上的引脚14,该引脚用于控制蜂鸣器。

接下来,我们在setup()函数中将蜂鸣器引脚设置为输出:

void setup()
{
  pinMode(buzzerPin, OUTPUT); // 设置为输出
}

这确保ESP32知道使用引脚14发送信号来打开和关闭蜂鸣器。

loop()函数中,我们创建一个for循环来多次激活蜂鸣器:

for (int i = 0; i < 50; i++) // 循环50次,每次播放短音
{
  digitalWrite(buzzerPin, HIGH); // 设置为HIGH使蜂鸣器发声
  delay(3); // 等待3毫秒
  digitalWrite(buzzerPin, LOW); // LOW关闭蜂鸣器
  delay(3); // 
}

此循环将使蜂鸣器鸣叫50次,每次鸣叫持续3毫秒。循环完成后,延迟1秒再重复。

演示/预期效果

当接线和代码设置正确时,给ESP32通电应激活蜂鸣器,产生一系列蜂鸣声。如果蜂鸣器不响,请检查连接,特别是晶体管和电阻的方向。确保代码中使用正确的GPIO引脚,并且电源充足(视频中01:30处)。

视频时间戳

  • 00:00 开始
  • 1:45 蜂鸣器程序介绍
  • 5:57 连接蜂鸣器和S8050晶体管
  • 9:57 ESP32蜂鸣器的Arduino代码
  • 12:52 选择ESP32开发板和COM端口
  • 14:05 3.1 蜂鸣器项目演示

图像

ESP32-13-buzzer-wriing
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
S87050_transistor
812-ESP32 Tutorial 13/55- Arduino code for controlling buzzer
语言: C++
const int buzzerPin = 14; // 蜂鸣器引脚

void setup()
{
  pinMode(buzzerPin, OUTPUT); // 设置为输出
}

void loop()
{
  for (int i = 0; i < 50; i++) // 循环50次,每次播放一个短音调
  {
    digitalWrite(buzzerPin, HIGH); // 设置为高以使蜂鸣器响起
    delay(3); // 等待3毫秒
    digitalWrite(buzzerPin, LOW); // LOW以关闭蜂鸣器
    delay(3);
  }
  delay(1000); // 在开始下一个循环之前等待1秒。
}

资源与参考

文件📁

数据手册 (pdf)