متوسط⏱ 14 دقیقه مطالعه
در این درس یاد میگیرید چطور چند LED را همزمان یا بهصورت متوالی (افکت چراغ روان، معروف به Knight Rider) کنترل کنید — تمرینی عالی برای کار با لیستها و حلقهها در میکروپایتون.
تعریف چند پایه با یک لیست
بهجای تعریف تکتک متغیرها برای هر 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 را بهآرامی محو و ظاهر کنید تا افکتی نرمتر بسازید.
🛠️ کارگاه عملی
کارگاه عملی: افکت «چراغ روان» بالا را طوری تغییر دهید که سرعت آن به یک پتانسیومتر (با ADC، درس ۶) وابسته باشد؛ هرچه پتانسیومتر بیشتر بچرخد، سرعت چراغها بیشتر شود.
❓ برای ساخت سریع لیستی از آبجکتهای Pin از کدام روش استفاده شد؟
→ فصل قبل: فصل ۶: مباحث پیشرفته: درس ۱۶: برنامهنویسی ناهمزمان با uasyncio و پروژه پایانی
درس بعدی: درس ۱۸: سنسور فاصلهٔ آلتراسونیک HC-SR04 ←
طراحی و توسعه: امین شیخ نجدی — glcd.ir | نسخهٔ افزونه: 1.21.0