דלגו לתוכן המרכזי
KitLab
שיעור קודם
אור רץ — לולאה על רשימה· 21 / 41
אור רץ — לולאה על רשימה
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

אור רץ — לולאה על רשימה

מה בשיעור?

  • ארבעת יסודות האפקט
  • השתהות ראייה ליצירת תנועה
  • for על אובייקטים במקום אינדקסים
  • למה הקוד נקרא כמו משפט

מה נלמד כאן

  • אור רץ
  • השתהות ראייה — הפעם ליצירת תנועה
  • לשלוט בחמש נוריות עם רשימה

מהנורית הבודדת לאפקט

אור רץ

פרק 3 מתחיל כאן. מכאן והלאה אין רכיבים חדשים — משלבים את מה שכבר יודעים לפרויקטים שלמים.


הידע שצריך

אור רץ הוא כמה נוריות שנדלקות ונכבות ברצף ויוצרות אשליה של תנועה. ארבעה יסודות:

  1. שליטה מקבילה — כל נורית לפין נפרד
  2. רצף — מדליקים, ממתינים, מכבים, עוברים לבאה
  3. ההשהיה יוצרת את הקצב
  4. השתהות ראייה מחברת — העין רואה נקודת אור שזזה, לא נוריות נפרדות

אותה תופעה מהתצוגה המרובעת — שם השתמשנו בה כדי להעלים רצף, כאן כדי ליצור תנועה.

איפה זה נמצא: שלטי פרסום, תאורת במה, אורות פנייה זורמים ברכב, נוריות סטטוס.


הניסוי

המטרה: חמש נוריות נדלקות ונכבות ברצף.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
נוריות LED 5
נגד 220Ω 5

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים


הקוד

from machine import Pin
import time

led_pins = [5, 16, 17, 18, 19]
leds = [Pin(p, Pin.OUT) for p in led_pins]

while True:
    for led in leds:
        led.value(1)
        time.sleep(0.2)
        led.value(0)

שימו לב ל-for led in leds — פייתון עוברת על האובייקטים עצמם, בלי אינדקסים בכלל.

השוו ל-C: שם היה for (int i = 0; i < 5; i++) ואז ledPins[i]. כאן הלולאה נקראת כמו משפט: "עבור כל נורית ברשימת הנוריות". זה היתרון המרכזי של פייתון — הקוד מתאר מה רוצים, לא איך לספור.

מה אמור לקרות

האור זורם


נסו בעצמכם

  • שנו ל-sleep(0.05) ואז 0.5. מאיזו מהירות זה מפסיק להיראות כמו זרימה?
  • הפכו כיוון: for led in reversed(leds).
  • עשו זרימה הלוך ושוב — שתי לולאות.
  • הדליקו שתי נוריות יחד שזזות במקביל.
  • שלבו עם שיעור 4: לחיצה מתחילה את הזרימה.

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

נשלח למייל את קובצי הקוד, החומרים ועדכונים על שיעורים חדשים. בלי ספאם.