本以为蜂鸣器是最简单的,但确实最难的,想要唱的出来,还得学学音乐上的事情。
板载的应该是个有源蜂鸣器,最简单的用法就是高电平发声,低电平不发生,代码如下:
from machine import Pin
import time
beep = Pin(16,Pin.OUT)
beep.on() #发声
time.sleep(2)
beep.off() #不发声
如果想产生音乐,就需要用到PWM模块。看大家调用的库里,有那么多音符就把我弄懵了,我以为只有do、re、mi、fa、sol、la、si。但是从库里看到的确实C、C#之类的。所以又补充了一下音符的知识,这次潮流了一把,问了问chatGPT。
可以看到C音对应的频率是256hz,如果是高一个八度则是2倍的频率。
然后就是各个音符与do、re、mi的对应关系和对应频率。因此,如果想发出do音,那么pwm的频率应该是261Hz,占空比设置成50%就行。所以发出do、re、mi、fa、sol、la、si的代码如下:
from machine import Pin,PWM
import time
yinfu = [261,293,330,349,392,440,494]
beep = PWM(Pin(16))
for i in range(7):
beep.freq(yinfu[i])
beep.duty_u16(0x8000)
time.sleep(1)
beep.deinit()
如果想演奏音乐,最好是调用别的库,比如
。