from machine import Pin, PWM
import time
# 右4腳位對應到GPIO15
buzzer = PWM(Pin(15, Pin.OUT))
# 頻率
buzzer.freq(1)
# 工作周期
buzzer.duty(500)
# 音階
scale = [ 1
, 130, 149, 165, 175, 196, 220, 247 , 1 , 1, 1
, 262, 294, 330, 349, 392, 440, 494 , 1 , 1, 1
, 523, 587, 659, 698, 784, 880, 988 , 1 , 1, 1
,1046,1175,1318,1397,1568,1760,1976]
# 播放簡譜
def play(music, beat):
global buzzer
for i in range(0, len(music)):
buzzer.freq(scale[music[i]])
time.sleep(beat[i])
# 簡譜
music1 = [
23, 22, 21, 17,
16, 15, 16, 17,
13, 13, 11,
22, 17,
21, 21, 16,
17, 15,
16,16,14,
15, 13,
16,16,21,
17,21,22,
23,22,23,24,
25,22,25,24,
23,26,25,24,
25,24,23,22,
21,16,26,27,
31,27,26,25,
24,23,22,26,
25,26,25,24
]
#節拍
beat1 = [
2, 2, 2, 2,
2, 2, 2, 2,
1, 0.5, 0.5,
1.5, 0.5,
1, 0.5, 0.5,
1.5, 0.5,
1, 0.5, 0.5,
1.5, 0.5,
1, 0.5, 0.5,
1, 0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
0.5, 0.5,0.5, 0.5,
]
play(music1, beat1)
#關閉
buzzer.deinit()