零基础学ESP32:蜂鸣器——让ESP32会“唱歌”!

发布时间:2026/8/30 16:07:50
零基础学ESP32:蜂鸣器——让ESP32会“唱歌”! 前面我们学了显示屏、按键、摇杆——这些都是“输入”设备用来把信息交给ESP32。今天反过来我们来学一个 “输出” 设备蜂鸣器。蜂鸣器的作用很简单——发出声音。防盗报警器的刺耳鸣叫、微波炉完成加热的“叮”一声、电子琴的优美旋律……这些声音都来自蜂鸣器。今天这节课我们先认识有源蜂鸣器能响就行再学习无源蜂鸣器能播放旋律让ESP32从“会说话”升级到“会唱歌”第一步找到课程看看成品效果打开逗脑IDE点击顶部“文档”在“课程” → “ESP32 MicroPython”分类下找到蜂鸣器。打开课件你会看到本节课的最终效果有源蜂鸣器发出单一频率的“嘀嘀”声无源蜂鸣器连续播放《超级马里奥》和《铃儿响叮当》两首旋律第二步有源 VS 无源有什么区别蜂鸣器分为两种区别非常简单有源蜂鸣器无源蜂鸣器内部结构自带振荡电路没有振荡电路控制方式通电就响断电就停需要PWM信号驱动声音效果只有一种音调固定频率可以播放不同音调旋律、歌曲代码难度简单高低电平控制稍复杂PWM调频价格便宜稍贵一点第三步动手接线两种蜂鸣器的接线方式相同都是2根线蜂鸣器引脚连接ESP32说明VCC正极3.3V电源正极GND负极GND电源地IO信号脚GPIO15控制信号有源用高低电平无源用PWM 小提示有些模块把VCC和信号脚标成了“正极”和“负极”按照模块上的标注连接即可。第四步有源蜂鸣器——响和不响就这么简单先学最简单的有源蜂鸣器。控制它只需要高低电平frommachineimportPinimporttime p15Pin(15,Pin.OUT)foriinrange(10):p15.value(1)# 高电平 → 不响time.sleep(0.2)p15.value(0)# 低电平 → 响time.sleep(0.2)p15.value(1)# 最后关闭代码逻辑操作效果p15.value(1)蜂鸣器关闭不响p15.value(0)蜂鸣器打开响就是这么简单运行后蜂鸣器会“嘀-嘀-嘀-嘀……”响10次然后停止。第五步无源蜂鸣器——播放歌曲无源蜂鸣器需要PWM脉冲宽度调制信号来驱动。通过改变PWM的频率就能发出不同的音调。核心思路定义好每个音符对应的频率C4262HzD4294Hz……把歌曲写成“音符列表”依次播放列表中的每个音符frommachineimportPin,PWMfromtimeimportsleep_msclassBUZZER:def__init__(self,sig_pin):self.pwmPWM(Pin(sig_pin,Pin.OUT))defplay(self,melodies,wait,duty):fornoteinmelodies:ifnote:# 有音符self.pwm.freq(note)# 设置频率self.pwm.duty(duty)# 发声sleep_ms(wait)# 持续指定时长self.pwm.duty(0)# 停止# 音符频率表只列出一部分完整版在课件里C4262# 中央CD4294E4330F4349G4392A4440B4494C5523# ... 更多音符在课件中# 超级马里奥旋律mario[E7,E7,0,E7,0,C7,E7,0,G7,0,0,0,G6,0,0,0,# ...]# 初始化蜂鸣器buzzerBUZZER(15)print(播放 超级马里奥)buzzer.play(mario,150,512)代码逻辑步骤说明1定义音符频率C4262HzD4294Hz……2把歌曲写成音符列表3播放器依次读取音符设置对应的PWM频率40表示休止符静音第六步保存运行听效果按Ctrl S保存选择ESP32开发板设备给文件命名比如buzzer.py点击保存。点击运行按钮首先有源蜂鸣器部分会响起“嘀-嘀-嘀-嘀……”的声音。然后无源蜂鸣器部分开始播放—— 先来一首《超级马里奥》主题曲 再来一首《铃儿响叮当》圣诞歌蜂鸣器能做什么应用场景使用哪种用途防盗报警器有源发出刺耳警报声门铃有源按下门铃“叮咚”一声倒车雷达有源“嘀-嘀-嘀-”越来越快电子琴无源弹奏不同音调音乐播放器无源播放旋律、歌曲智能家电提示音有源/无源操作成功/失败的反馈音全程回顾步骤操作效果找到课程文档→课程→ESP32MicroPython→蜂鸣器了解两种蜂鸣器认识区别有源一种音调无源多种音调知道该买哪种动手接线VCC→3.3V, GND→GND, IO→GPIO15硬件就位测试有源运行有源代码蜂鸣器“嘀嘀”响测试无源运行无源代码播放《超级马里奥》如果你对本节课感兴趣去官网www.dounao.cn下载逗脑IDE准备好相关配件跟着课件走一遍。有任何问题或建议欢迎在评论区留言告诉我们。