使用 MicroPython 实现 ESP32-CH3 扬声器播放声音

1.环境准备

烧录 MicroPython 固件

2.连接硬件

ESP32-CH3 扬声器电路
GPIO15 → 100Ω 电阻 → 10μF 电容 → 扬声器正极 ,也可以不用电阻直接连接
GND → 扬声器负极 → 电容负极

3.测试播放生日歌的旋律

复制代码
from machine import Pin, PWM
import time

# 音符频率表
tones = {
    'C4': 262, 'D4': 294, 'E4': 330, 'F4': 349,
    'G4': 392, 'A4': 440, 'B4': 494, 'C5': 523
}

# PWM初始化
pwm_pin = Pin(15)
pwm = PWM(pwm_pin)

# 生日快乐歌旋律
melody = ['C4', 'C4', 'D4', 'C4', 'F4', 'E4',
          'C4', 'C4', 'D4', 'C4', 'G4', 'F4',
          'C4', 'C4', 'C5', 'A4', 'F4', 'E4', 'D4',
          'B4', 'B4', 'A4', 'F4', 'G4', 'F4']

# 音符持续时间
durations = [2, 2, 4, 4, 4, 8] * 4  # 重复4次节奏模式

# 播放旋律
try:
    for i, note in enumerate(melody):
        if note == 'P':  # 休止符
            pwm.duty_u16(0)
        else:
            pwm.freq(tones[note])
            pwm.duty_u16(32768)  # 50%占空比
            
        # 根据持续时间播放
        time.sleep(0.5 / durations[i])
        
        # 音符间的短暂停顿
        pwm.duty_u16(0)
        time.sleep(0.05)
        
finally:
    # 确保释放PWM资源
    pwm.deinit()

运行代码后就发现扬声器发出来了声音了

相关推荐
恒锐丰小吕21 分钟前
屹晶微 EG3116 600V高压、2A/2.5A驱动、双高有效输入逻辑的半桥栅极驱动芯片技术解析
嵌入式硬件·硬件工程
F1331689295735 分钟前
WD5030K,耐高压输出电流10A,WD5030A输出电流12A
网络·单片机·嵌入式硬件·物联网·汽车
三佛科技-134163842121 小时前
HN32512非隔离12V300MA~600MA降压控制方案典型应用 电路
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
集芯微电科技有限公司1 小时前
替代HT6310/KP3310离线式AC-DC无感线性稳压器
数据结构·人工智能·单片机·嵌入式硬件·fpga开发
点灯小铭1 小时前
基于单片机的增量式编码器测速仪设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
猪八戒1.01 小时前
中断(按键、SYSTICK、串口)
stm32·单片机·嵌入式硬件
yuanmenghao2 小时前
CAN系列 — (8) 为什么 Radar Object List 不适合“直接走 CAN 信号”
网络·数据结构·单片机·嵌入式硬件·自动驾驶·信息与通信
xu_wenming2 小时前
物联网Wi-Fi 6(802.11ax)和 Wi-Fi 5(802.11ac)的差异
嵌入式硬件·mcu·物联网·iot
电子工程师成长日记-C512 小时前
基于51单片机的乒乓球计分器
单片机·嵌入式硬件·51单片机
weixin_669545202 小时前
单通道 2.7-12.0V 持续电流 2.3A H 桥驱动芯片 智能锁马达驱动IC XR8313
单片机·嵌入式硬件·硬件工程·信息与通信