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

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

相关推荐
u1521096484914 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd84510150014 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼14 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi14 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
科芯创展14 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司14 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑14 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
望眼欲穿的程序猿14 天前
读取芯片内部温度传感器
嵌入式硬件·rust
望眼欲穿的程序猿14 天前
ADC 模拟电压采集
嵌入式硬件·rust
IT方大同14 天前
(嵌入式操作系统)信号量
嵌入式硬件·c#