跳到:
ESP32教程1/55 - SunFounder ESP32物联网学习套件软件与Arduino IDE简介 ESP32教程2/55 - 什么是ESP32、摄像头扩展板、开箱SunFounder的ESP32物联网套件 ESP32 教程 3/55 - 电阻、LED、面包板项目:你好 LED -ESP32 物联网学习套件 ESP32 教程 4/55 - 数据类型 定义变量 Int、bool、char、串口监视器 - ESP32 物联网套件 ESP32教程5/55 - LED调光,控制LED亮度 - ESP32物联网学习套件 ESP32 教程 6/55 - 使用 RGB LED 项目 2.3 - SunFounder 的 ESP32 物联网学习套件 ESP32教程7/55-在ESP32 Arduino编程中使用数组-SunFounder的ESP32物联网学习套件 ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit ESP32 教程 9/55 - 使用按钮切换LED,按下开,按下关 - SunFounder ESP32 物联网套件 ESP32教程10/55 - 使用七段数码管74HC595的数字计数器 - ESP32物联网学习套件 ESP32教程11/55 - 使用LCD1602 LCD2004与ESP32 - SunFounder的ESP32物联网学习套件 ESP32 教程 12/55 - 使用 SunFounder 的 ESP32 IoT 学习套件进行 WS2812 RGB 灯带 4 项目 ESP32教程13/55 - 使用有源蜂鸣器让Arduino发出蜂鸣声 | SunFounder的ESP32物联网学习套件 ESP32 教程 14/55 - 使用 SunFounder ESP32 IoT 学习套件播放自定义音乐音符 ESP32教程15/55 - 使用ESP32 L293D控制直流电机速度 | SunFounder的ESP32物联网学习套件 ESP32教程16/55 - 使用ESP32和L293D的迷你水泵 | SunFounder的ESP32物联网学习套件 ESP32 教程 17/55 - 使用 ESP32 和电位器控制舵机 - ESP32 物联网学习套件 ESP32教程18/55 - 使用ESP32检测倾斜 | SunFounder的ESP32物联网学习套件 ESP32 教程 19/55 - 使用红外传感器检测障碍物 | SunFounder 的 ESP32 物联网学习套件 ESP32 教程 20/55 - 循迹模块 | SunFounder 的 ESP32 物联网学习套件 ESP32教程21/55 - 使用PIR运动传感器检测人体 | SunFounder的ESP32物联网学习套件 ESP32教程22/55 - 使用LED Arduino感受光线 | SunFounder的ESP32物联网学习套件 ESP32 教程 23/55 - 使用ESP32读取电位器电压 | SunFounder的ESP32物联网套件 ESP32 教程 24/55 - 测量土壤湿度用于灌溉 | SunFounder 的 ESP32 IoT 学习套件 ESP32教程25/55 - 使用NTC和LCD测量温度 | SunFounder的ESP32物联网学习套件 ESP32教程26/55 - 使用操纵杆与Arduino采取行动 | SunFounder的ESP32物联网套件 ESP32 教程 27/55 - 使用超声波传感器测量距离 | SunFounder 的 ESP32 物联网学习套件 ESP32教程28/55 - DHT11温度传感器与LCD | SunFounder的ESP32物联网学习套件 ESP32 教程 29/55 - 使用ESP32读取红外遥控按键| SunFounder的ESP32物联网学习套件 ESP32教程30/55——使用Adafruit IO服务通过MQTT在网页上控制舵机 | SunFounder的ESP32物联网学习套件 ESP32教程31/55 - 带避障功能的LED灯带项目 | SunFounder的ESP32物联网学习套件 ESP32教程32/55 - 带LCD和蜂鸣器的汽车倒车距离警告 | SunFounder物联网学习套件 ESP32 教程 33/55 - 使用 SunFounder 的 ESP32 物联网学习套件制作数字骰子 ESP32 教程 34/55 - 使用RGB LED和旋钮实现颜色渐变 | SunFounder的ESP32物联网学习套件 ESP32教程35/55 - 植物监测器,土壤、温度和光照 | SunFounder的ESP32物联网学习套件 ESP32教程36/55 - 猜数字游戏 | SunFounder的ESP32物联网学习套件 ESP32教程37/55 - 使用蓝牙应用与ESP32 BLE | SunFounder的ESP32物联网学习套件 ESP32 教程 38/55 - 通过手机控制RGB LED | SunFounder的ESP32物联网学习套件 ESP32教程39/55 - 将ESP32用作蓝牙音乐播放器 | SunFounder的ESP32物联网学习套件 ESP32教程40/55 - 读写Micro SD卡 | SunFounder的ESP32物联网学习套件 ESP32教程41/55 - 使用Micro SD卡的MP3播放器 | SunFounder的ESP32物联网学习套件 ESP32教程42/55 - 使用相机拍照并保存到Micro SD卡 CAM-1 | SunFounder的ESP32套件 ESP32教程43/55 - 物联网互联网气象站 | SunFounder的ESP32物联网学习套件 ESP32教程44/55 - ESP32摄像头WiFi视频流网页服务器 CAM-2 | SunFounder的ESP32套件 ESP32教程45/55 - 带LED控制的定制流媒体服务器 CAM-3 l SunFounder的ESP32学习套件 ESP32教程46/55 - 使用HiveMQ MQTT进行远程温度监控 | SunFounder的ESP32套件 ESP32教程47/55 - 使用MQTT通过互联网实现WS2812 CheerLights | SunFounder的ESP32物联网套件 ESP32教程48/55 - 远程温度监控与LED控制MQTT | SunFounder的ESP32物联网套件 ESP32教程49/55 - 通过Adafruit IoT在互联网上控制直流电机 | SunFounder的ESP32套件 ESP32教程50/55 - 从世界任何地方控制RGB LED | SunFounder的ESP32套件 ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit ESP32教程52/55 - WS2812 CheerLights MQTT全局同步与LCD | SunFounder ESP32物联网套件 ESP32教程53/55 - 构建LCD网络时钟 | SunFounder的ESP32物联网学习套件 ESP32教程54/55 - 通过WiFi设置WS2812 LED灯带颜色 | SunFounder的ESP32物联网学习套件 ESP32教程55/55 - 如何测量12V、24V或100V直流电压 | SunFounder的ESP32物联网学习套件
ESP32 教程 14/55 - 使用 SunFounder ESP32 IoT 学习套件播放自定义音乐音符
在本教程中,我们将学习如何使用SunFounder ESP32微控制器,通过无源蜂鸣器和晶体管播放音符。该项目旨在演示如何通过ESP32的GPIO引脚控制蜂鸣器,以特定频率生成声音。
我们将把一个无源蜂鸣器连接到ESP32,这样我们就可以根据提供的频率产生不同的音符。此设置包括使用晶体管高速开关蜂鸣器,从而产生我们能听到的声波。如需进一步了解该项目,请务必观看视频(视频中00:30处)。
ESP32-13-蜂鸣器原理图
硬件说明
本项目使用的主要组件包括SunFounder ESP32微控制器、一个无源蜂鸣器和一个NPN晶体管(2N8050)。ESP32是一款功能强大的开发板,内置Wi-Fi和蓝牙功能,使其适用于各种物联网应用。在本例中,它将生成信号来控制蜂鸣器。
无源蜂鸣器的工作原理是:当对其施加交变电压时产生声音。与带有内置振荡器的有源蜂鸣器不同,无源蜂鸣器需要外部信号才能发声。晶体管充当开关,使ESP32无需直接供电即可控制蜂鸣器,从而确保不超过微控制器的额定电流。
S87050_晶体管
数据手册详情
制造商
SunFounder
零件编号
无源蜂鸣器
工作电压
3.3 V - 5 V
谐振频率
2 kHz - 4 kHz
电流消耗
≤ 30 mA
声压级
≥ 70 dB
封装
通孔
备注/变体
无
连接蜂鸣器时确保极性正确。
为晶体管基极使用限流电阻。
将蜂鸣器连接到与其额定电压兼容的电源。
注意不要超过晶体管的最大额定电流。
保持布线整洁,避免短路。
上传代码前先测试电路,以免损坏元件。
使用面包板便于元件连接。
如果使用按钮,请务必进行去抖处理。
如果晶体管在高电流下使用,考虑为其添加散热器。
接线说明
ESP32-13-buzzer-wriing
要连接元件,首先将无源蜂鸣器的正极连接到ESP32上的3.3V引脚。蜂鸣器的负极应连接到NPN晶体管的集电极。晶体管的发射极引脚应连接到ESP32的地(GND)。
接下来,将一个1 kΩ电阻从晶体管的基极连接到ESP32上的GPIO引脚14。该电阻用于限制流入晶体管基极的电流。最后,确保所有接地连接都连接在一起,为电路提供公共参考点。
代码示例与讲解
const int buzzerPin = 14; // 蜂鸣器引脚
void setup()
{
pinMode(buzzerPin, OUTPUT); // 设置为输出
}
在代码中,我们定义了一个常量变量buzzerPin,其值设为14,表示连接到晶体管基极的GPIO引脚。在setup()函数中,我们将此引脚设置为OUTPUT,使ESP32能够控制蜂鸣器。
void loop()
{
for (int i = 0; i < 50; i++) // 循环50次,每次播放一个短音
{
digitalWrite(buzzerPin, HIGH); // 设为HIGH使蜂鸣器发声
delay(3); // 等待3毫秒
digitalWrite(buzzerPin, LOW); // 设为LOW关闭蜂鸣器
delay(3); //
}
delay(1000); // 在开始下一个循环前等待1秒
}
loop()函数包含一个运行50次的for循环。每次迭代都会快速打开和关闭蜂鸣器,从而产生一个音调。3毫秒的延迟控制蜂鸣器激活和停用的时间,而循环末尾的1秒延迟则在重复前提供暂停。
演示/预期效果
接线完成并上传代码后,您应该能听到蜂鸣器发出一系列短音。如果蜂鸣器没有发声,请检查您的连接,特别是晶体管的朝向和电阻值。确保代码中使用了正确的引脚,并且ESP32已正确供电。
在演示过程中,如果遇到问题,可能是由于接线错误或使用了错误的蜂鸣器引脚。请对照说明检查接线,并确保电源充足(视频中08:15处)。
视频时间戳
00:00 开始
1:52 项目介绍
4:11 接线说明
8:11 在Arduino IDE中选择ESP32开发板和COM端口
9:53 Arduino代码讲解
13:17 项目演示
13:58 项目2代码与演示
图像
ESP32-13-buzzer-wriing
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
S87050_transistor
ESP32-13-buzzer-schematic
SunFounder-ESP32-Lesson-13-Beep.mp4_snapshot_07.43.463
代码
813-ESP32 Tutorial 14/55- Arduino code for custom music tone
语言: C++
查看代码
const int buzzerPin = 14; // buzzer pin
const int resolution = 8;
// Frequencies of the 7 musical notes (in Hz)
int frequencies[] = {262, 294, 330, 349, 392, 440, 494};
// Function to play a frequency on the buzzer for a given duration
void playFrequency(int frequency, int duration) {
ledcWriteTone(buzzerPin, frequency); // Start the tone
delay(duration); // Wait for the specified duration
ledcWriteTone(buzzerPin, 0); // Stop the buzzer
}
void setup() {
ledcAttach(buzzerPin, 2000, 8); // Set up the PWM pin
}
void loop() {
for (int i = 0; i < 7; i++) {
playFrequency(frequencies[i], 300); // Play each note for 300ms
delay(50); // Add a brief pause between the notes
}
delay(1000); // Wait for 1 second before replaying the sequence
}