一、实现目的
利用ESR32开发板和蜂鸣器,实现乐曲播放。原理是通过GPIO口控制PWM的输出,调节不同的音量大小来实现。
二、硬件连接
三、代码分析
看注释,写的很明白哦。
main.py
# 蜂鸣器演奏音乐的两个要素就是声音频率、声音持续时间,分别对应乐谱中的音调、节拍。
from machine import Pin,PWM
import time
beeper = PWM(Pin(22)) #定义PWM波端口为GPIO22 # 通过Pin对象来创建PWM对象
tone = [247,262,294,330,349,392,440,494,523,587,659,698,784,1000] # 设置蜂鸣器的声音大小,由ADC值来控制,蜂鸣器声音范围0-1023
# 音调
music=[
5,5,6,8,7,6,5,6,13,13,
5,5,6,8,7,6,5,3,13,13,
2,2,3,5,3,5,6,3,2,1,
6,6,5,6,5,3,6,5,13,13,
5,5,6,8,7,6,5,6,13,13,
5,5,6,8,7,6,5,3,13,13,
2,2,3,5,3,5,6,3,2,1,
6,6,5,6,5,3,6,1,
13,8,9,10,10,9,8,10,9,8,6,
13,6,8,9,9,8,6,9,8,6,5,
13,2,3,5,5,3,5,5,6,8,7,6,
6,10,9,9,8,6,5,6,8
]
# 节拍
beat = [
2,4,2,2,2,2,2,8,4,4,
2,4,2,2,2,2,2,8,4