from machine import Pin, PWM
from time import sleep_ms
class BUZZER:
def __init__(self, sig_pin):
self.pwm = PWM(Pin(sig_pin, Pin.OUT))
def play(self, melodies, wait, duty):
for note in melodies:
if note == 0:
self.pwm.duty(0)
else:
self.pwm.freq(note)
self.pwm.duty(duty)
sleep_ms(wait)
self.pwm.duty(0)
#notes and its equivalent frequency
B0=31
C1=33
CS1=35
D1=37
DS1=39
E1=41
F1=44
FS1=46
G1=49
GS1=52
A1=55
AS1=58
B1=62
C2=65
CS2=78
E2=82
F2=87
FS2=93
G2=98
GS2=104
A2=110
AS2=117
B2=123
C3=131
CS3=139
D3=147
DS3=156
E3=165
F3=175
FS3=185
G3=196
GS3=208
A3=220
AS3=233
B3=247
C4=262
CS4=277
D4=294
DS4=311
E4=330
F4=349
FS4=370
G4=392
GS4=415
A4=440
AS4=466
B4=494
C5=523
CS5=554
D5=587
DS5=622
E5=659
F5=698
FS5=740
G5=784
GS5=831
A5=880
AS5=932
B5=988
C6=1047
CS6=1109
D6=1175
DS6=1245
E6=1319
F6=1397
FS6=1480
G6=1568
GS6=1661
A6=1760
AS6=1865
B6=1976
C7=2093
CS7=2217
D7=2349
DS7=2489
E7=2637
F7=2794
FS7=2960
G7=3136
GS7=3322
A7=3520
AS7=3729
B7=3951
C8=4186
CS8=4435
D8=4699
DS8=4978
# 0 denotes rest notes
mario = [
E7, E7, 0, E7, 0, C7, E7, 0,
G7, 0, 0, 0, G6, 0, 0, 0,
C7, 0, 0, G6, 0, 0, E6, 0,
0, A6, 0, B6, 0,AS6, A6, 0,
G6, E7, 0, G7, A7, 0, F7, G7,
0, E7, 0, C7, D7, B6, 0, 0,
C7, 0, 0, G6, 0, 0, E6, 0,
0, A6, 0, B6, 0,AS6, A6, 0,
G6, E7, 0, G7, A7, 0, F7, G7,
0, E7, 0, C7, D7, B6, 0, 0,
]
twinkle = [
C6, C6, G6, G6, A6, A6, G6, 0,
F6, F6, E6, E6, D6, D6, C6, 0,
G6, G6, F6, F6, E6, E6, D6, 0,
G6, G6, F6, F6, E6, E6, D6, 0,
F6, F6, E6, E6, D6, D6, C6, 0,
]
b= BUZZER(23)
b.play(mario,150,512)
sleep_ms(1000)
b.play(twinkle,600,512)
sleep_ms(1000)
#while True:
#frequency=s[p]
#buzzer.init(freq=frequency, duty=512)
#print("frequency is",frequency,"Hz")
#p=(p+1)%len(s)
#print("posizione",p,"Hz")
#buzzer.play(s,150,512)
#sleep(time)