در این درس یاد میگیرید چطور چند LED را همزمان یا بهصورت متوالی (افکت چراغ روان، معروف به Knight Rider) کنترل کنید — تمرینی عالی برای کار با لیستها و حلقهها در میکروپایتون.
تعریف چند پایه با یک لیست
بهجای تعریف تکتک متغیرها برای هر LED، میتوانیم یک لیست از آبجکتهای Pin بسازیم و با حلقه روی آنها کار کنیم.
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، درس ۶) وابسته باشد؛ هرچه پتانسیومتر بیشتر بچرخد، سرعت چراغها بیشتر شود.