使用 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()

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

相关推荐
璞致电子4 小时前
【PZ-AU15P】璞致fpga开发板 Aritx UltraScalePlus PZ-AU15P 核心板与开发板用户手册
嵌入式硬件·fpga开发·fpga·fpga开发板·xilinx开发板
芯岭技术5 小时前
MS32C001单片机芯片介绍,QFN16/20封装 主频24MHz
单片机·嵌入式硬件
weixin_700711405 小时前
硬件基础与c51基础
单片机·嵌入式硬件
Jack153027682797 小时前
深度剖析 DC - DC 转换器在新能源汽车中的关键应用
单片机·嵌入式硬件·汽车·充电桩·电动工具·汽车音响系统
武文斌779 小时前
单片机:GPIO、按键、中断、定时器、蜂鸣器
单片机·嵌入式硬件
古译汉书10 小时前
嵌入式铁头山羊stm32-SAR型ADC模块介绍、采样时间、转换时间-Day24
c语言·stm32·单片机·嵌入式硬件·iot
2501_9212904410 小时前
嵌入式第四十六天(51单片机(中断,定时器))
单片机·嵌入式硬件·51单片机
嵌入式牛马在努力帮老板娶老婆10 小时前
十三、STM32----LCD屏驱动
stm32·嵌入式硬件·计算机外设
Skylar_.10 小时前
嵌入式 - 硬件:51单片机(3)uart串口
单片机·嵌入式硬件·51单片机
@ZzHhXx11 小时前
嵌入式学习---(单片机)
单片机·嵌入式硬件·学习