متوسط⏱ 14 دقیقه مطالعه

در این درس یاد می‌گیرید چطور چند LED را هم‌زمان یا به‌صورت متوالی (افکت چراغ روان، معروف به Knight Rider) کنترل کنید — تمرینی عالی برای کار با لیست‌ها و حلقه‌ها در میکروپایتون.

اتصال چند LED به چند پایهٔ GPIO

تعریف چند پایه با یک لیست

به‌جای تعریف تک‌تک متغیرها برای هر LED، می‌توانیم یک لیست از آبجکت‌های Pin بسازیم و با حلقه روی آن‌ها کار کنیم.

PYTHON
from machine import Pin
from time import sleep

pins = [13, 12, 14, 27, 26]
leds = [Pin(p, Pin.OUT) for p in pins]

def all_off():
    for led in leds:
        led.off()

while True:
    for led in leds:
        all_off()
        led.on()
        sleep(0.1)
    for led in reversed(leds):
        all_off()
        led.on()
        sleep(0.1)
💡 نکته

ساخت لیستی از آبجکت‌های Pin با List Comprehension (مثل [Pin(p, Pin.OUT) for p in pins]) کد را بسیار تمیزتر و قابل‌توسعه‌تر می‌کند.

افزودن PWM برای افکت محوشدگی

با ترکیب این ایده با PWM (درس ۵)، می‌توانید به‌جای روشن/خاموش ناگهانی، هر LED را به‌آرامی محو و ظاهر کنید تا افکتی نرم‌تر بسازید.

🧩

پروژهٔ آمادهٔ دقیقی برای «چند LED با آرایه از پایه‌ها» در Wokwi پیدا نکردیم؛ یک پروژهٔ خالی بسازید و مطابق تصویر بالا، پنج LED را به پایه‌های GPIO13، ۱۲، ۱۴، ۲۷ و ۲۶ وصل کنید.

ساخت پروژهٔ خالی میکروپایتون در Wokwi ↗
🛠️ کارگاه عملی

کارگاه عملی: افکت «چراغ روان» بالا را طوری تغییر دهید که سرعت آن به یک پتانسیومتر (با ADC، درس ۶) وابسته باشد؛ هرچه پتانسیومتر بیشتر بچرخد، سرعت چراغ‌ها بیشتر شود.

❓ ”برای
یک List Comprehension است که در یک خط، لیستی از آبجکت‌های Pin می‌سازد.”]

طراحی و توسعه: امین شیخ نجدیglcd.ir