from machine import Pin, PWM
from time import sleep
buzzer = PWM(Pin(25))
buzzer.duty(512)
notes = {
"C4": 262, "D4": 294, "E4": 330, "F4": 349,
"G4": 392, "A4": 440, "B4": 494, "C5": 523
}
melodies = [
["C4", "D4", "E4", "F4"],
["E4", "D4", "C4", "D4"],
["G4", "A4", "B4", "C5"],
["C5", "B4", "A4", "G4"],
["C4", "E4", "G4", "C5"],
["F4", "A4", "C5", "A4"],
["E4", "G4", "B4", "G4"],
["D4", "F4", "A4", "F4"],
["C4", "C4", "G4", "G4"],
["A4", "A4", "F4", "F4"],
["D4", "B4", "G4", "E4"],
["E4", "C4", "D4", "B4"],
["G4", "F4", "E4", "D4"],
["A4", "G4", "F4", "E4"],
["B4", "A4", "G4", "F4"],
["C5", "B4", "A4", "G4"]
]
buttons = [
Pin(32, Pin.IN),
Pin(33, Pin.IN),
Pin(26, Pin.IN),
Pin(27, Pin.IN)
]
def play_melody(index):
melody = melodies[index]
for note in melody:
buzzer.freq(notes[note])
sleep(0.3)
buzzer.duty(0)
sleep(0.2)
buzzer.duty(512)
while True:
for i, btn in enumerate(buttons):
if btn.value() == 1:
print(f"Playing melody {i*4 + 1}–{i*4 + 4}")
for m in range(i*4, i*4 + 4):
play_melody(m)
sleep(0.5)