from machine import Pin, PWM
import time
# إعداد البازر على GP15 باستخدام PWM
buzzer = PWM(Pin(15))
buzzer.duty_u16(0) # إيقاف الصوت في البداية
# تعريف أطراف المفاتيح (GP0 إلى GP5)
button_pins = [0, 1, 2, 3, 4, 5]
buttons = [Pin(pin, Pin.IN, Pin.PULL_UP) for pin in button_pins]
# ترددات النغمات الموسيقية (C4, D4, E4, F4, G4, A4)
frequencies = [262, 294, 330, 349, 392, 440]
while True:
note_played = False
for i in range(6):
# عند الضغط على الزر تكون القيمة 0 بسبب الـ PULL_UP
if buttons[i].value() == 0:
buzzer.freq(frequencies[i])
buzzer.duty_u16(32768) # تشغيل الصوت (50% duty cycle)
note_played = True
break # تشغيل نغمة زر واحد في المرة الواحدة
if not note_played:
buzzer.duty_u16(0) # إيقاف الصوت عند عدم الضغط على أي زر
time.sleep(0.01) # تأخير بسيط لاستقرار الاستجابة