第3章 蜂鸣器实验
第三章 蜂鸣器实验
1. 导入
蜂鸣器分有源和无源, 有源蜂鸣器控制相对简单, 只需得电即可发出声音;而无源蜂鸣器需要连续输出一定频率的脉冲信号才能使蜂鸣器发出声音, 即循环让 IO 口输出高低电平, 最佳发声频率在 1.5K-5KHz 之间, 当然其它频率值也能发出声音。 改变脉冲信号的频率和占空比可改变声音的音调和音量。 这样我们就可以使用板载无源蜂鸣器发出各种美妙的音乐。
2. 硬件设计
-
蜂鸣器模块
-
ESP32 GPIO
模块电路如下所示:
由图可知, J2 端子的 BEEP 脚为蜂鸣器控制端, 要使蜂鸣器发声, 只需给 J2端子的 BEEP 脚输出一定频率脉冲信号, 因此可使用导线将 ESP32 的 IO 口与 J2端子的 BEEP 脚连接, 通过 ESP32 的 GPIO 输出一定频率的脉冲信号即可。
本章实验使用 ESP32 的 IO25 引脚, 接线如下所示:
3. 软件设计
#导入Pin模块
from machine import Pin
import time
#定义蜂鸣器控制对象
beep = Pin(25, Pin.OUT)
#程序入口
if __name__=="__main__":
i = 0
while True:
i = not i #非运算
beep.value(i)
time.sleep_us(250) #脉冲频率为2KHz
频率为 2KHz, 则周期为 0.5ms, 若占空比为 50%, 则高低电平分别输出时间为 0.25ms, 即 250us, 如下所示:
4. 小结
这一章也比较简单,想让无源蜂鸣器响,怎么办?根据特定频率控制,依旧是让引脚输出低电平,然后延时不断翻转引脚状态
2024.8.20 第一次修订,后期不再维护