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

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

相关推荐
路过羊圈的狼1 小时前
STM32的HAL库驱动ADS124S08进行PT100温度采集
stm32·嵌入式硬件·mongodb
李永奉2 小时前
51单片机-实现红外遥控模块教程
单片机·嵌入式硬件·51单片机
辛集电子3 小时前
【STM32】位带操作
stm32·单片机·嵌入式硬件
wei-dong-183797540083 小时前
嵌入式硬件工程师每日提问
嵌入式硬件·电源拓扑结构
MOS管-冠华伟业3 小时前
微硕WSF4012 N+P双沟MOS管,驱动汽车智能座椅“无感”升降气泵
单片机·嵌入式硬件
沐欣工作室_lvyiyi3 小时前
基于单片机的汽车防碰撞刹车系统(论文+源码)
单片机·嵌入式硬件·stm32单片机·汽车·毕业设计
机器视觉知识推荐、就业指导4 小时前
STM32 外设驱动模块:声音传感器模块
stm32·单片机·嵌入式硬件
亿道电子Emdoor5 小时前
【ARM】MDK-Functions界面设置
stm32·单片机·嵌入式硬件
学不动CV了5 小时前
ARM单片机中断及中断优先级管理详解
c语言·arm开发·stm32·单片机·嵌入式硬件·51单片机
Topplyz6 小时前
最近两个电路调试的经历与总结(二)
嵌入式硬件·硬件设计·运放