מה נלמד כאן
- איך עובד פנס רחוב שנדלק לבד בחושך
- לחבר יחד שני רכיבים שכבר הכרתם — חיישן אור ונורית
- הבלוק if ... then ... else ולמה הוא נראה כמו מזלג
- מה זה סף ואיך מספר אחד קובע מתי האור נדלק
- לשנות את הסף ולראות מיד מה קרה
הפנס ברחוב לא מחכה לאף אחד
תחשבו על הרחוב שליד הבית שלכם. בערב, כשמתחיל להחשיך, כל פנסי הרחוב נדלקים — אבל אף אחד לא רץ עם מתג ומדליק אותם אחד-אחד. ובבוקר הם נכבים לבד. איך הם יודעים?

בתוך כל פנס כזה יושב חיישן אור קטן. כל הזמן, בלי הפסקה, הוא בודק כמה אור יש בחוץ. וכשהאור יורד מתחת לגבול מסוים — המערכת מדליקה את המנורה.
זה נקרא תאורה מבוקרת אור, ובאנגלית Light-Controlled Light. היא חוסכת המון חשמל, כי האור דולק רק כשבאמת צריך אותו. בשיעור הזה אתם בונים בדיוק את הדבר הזה על לוח הניסוי — פנס רחוב קטן משלכם.
והכי יפה: אתם כבר מכירים את שני החלקים. את חיישן האור למדתם בשיעור 6, ואת הנורית בשיעור 1. מה שחדש כאן הוא החיבור ביניהם — ההחלטה.
הרכיבים
חיישן האור (Photoresistor)
החיישן הוא רכיב קטן עם ראש עגול שנראה כמו נחש מתפתל. ההתנגדות שלו משתנה לפי כמות האור שנופלת עליו:
- הרבה אור → ההתנגדות קטנה
- מעט אור → ההתנגדות גדולה
הלוח לא יודע לקרוא התנגדות ישירות, אז מחברים את החיישן יחד עם נגד 10kΩ ומקבלים מחלק מתח. הנקודה שבאמצע — בין הנגד לחיישן — היא זו שמתחברת לפין 32 של הלוח.

הלוח ממיר את המתח בנקודה הזו למספר בין 0 ל-4095 — כמו סרגל עם 4096 קווים. וכאן הדבר החשוב שצריך לזכור לכל השיעור:
ככל שחשוך יותר — המספר גדול יותר.
למה? כי בחושך ההתנגדות של החיישן עולה, המתח בנקודת האמצע עולה איתה, והמספר שהלוח קורא עולה. באור חזק קורה ההפך: המספר יורד. זה בדיוק מה שראיתם בשיעור 6 כששמתם יד על החיישן והמספר קפץ למעלה.
הנורית
הנורית היא ה״מנורה״ שלנו. היא מחוברת דרך נגד 220Ω לפין 5. פין 5 על high — הנורית נדלקת. פין 5 על low — היא נכבית. בדיוק כמו בשיעור הראשון.
החיבור

צריכים: לוח ESP32, לוח ניסוי, נורית אחת, חיישן אור אחד, נגד 220Ω ונגד 10kΩ.
- הנורית — הרגל הארוכה (פלוס) דרך נגד 220Ω אל פין 5. הרגל הקצרה אל GND.
- חיישן האור — רגל אחת אל 5V, דרך נגד 10kΩ. הרגל השנייה אל GND.
- הנקודה שבין הנגד לחיישן — חוט אל פין 32. זו הנקודה שהלוח מודד.
- חשמל ללוח הניסוי — פס אדום אל 5V, פס כחול אל GND.
בדקו את החיישן: הוא צריך להיות במקום פתוח, לא מכוסה בחוטים, כדי שיראה את האור בחדר.
הבלוקים

כל התוכנית היא חמישה בלוקים. בואו נעבור עליהם אחד-אחד.
1. start the program
הכובע הצהוב שבראש הערימה. כל תוכנית ב-ACECode מתחילה ממנו. אפשר לחשוב עליו כמו על הכפתור ״התחל״ — מה שנמצא מתחתיו הוא מה שיקרה.
2. forever
בלוק ה-forever הוא בלוק עוטף — יש לו פה פתוח בצד, ומה שגוררים פנימה חוזר על עצמו שוב ושוב בלי סוף. הלוח לא ״גומר״ את התוכנית אף פעם; הוא עובר על הבלוקים שבפנים, מגיע לסוף, וחוזר להתחלה. אלפי פעמים בשנייה.
זה בדיוק מה שצריך לפנס רחוב: בדיקה אחת לא מספיקה, כי האור בחוץ משתנה כל הזמן.
3. if ... then ... else
הבלוק הזה הוא לב השיעור. יש לו חריץ משושה בראש — לשם נכנס התנאי — ושני פיות פתוחים:
- הפה העליון (then) — מה לעשות אם התנאי נכון
- הפה התחתון (else) — מה לעשות אם התנאי לא נכון
תחשבו על זה כמו על מזלג בדרך: הלוח מגיע לצומת, בודק את השלט, ופונה ימינה או שמאלה. תמיד אחד מהשניים יקרה — אף פעם לא שניהם, ואף פעם לא אף אחד.
4. התנאי: read analog pin [32] >= [2000]
בתוך החריץ המשושה יושב בלוק ירוק בצורת משושה — בלוק ההשוואה >= (גדול או שווה). משמאלו נכנס בלוק כחול עגלגל:
read analog pin [32] — הבלוק שקורא את המספר מחיישן האור. התפריט הנפתח בוחר את הפין. אצלנו 32, כי לשם חיברנו את החיישן. אם תחברו לפין אחר, תשנו כאן.
מימין ל->= יש חלון לבן עם המספר 2000. זה הסף — הגבול שמפריד בין ״יש מספיק אור״ ל״חשוך״.
אז התנאי כולו אומר: האם המספר שמגיע מהחיישן הוא 2000 או יותר? כלומר — האם חשוך?
5. הפעולות: set digital pin [5] to [high] ו-set digital pin [5] to [low]
שני בלוקים כחולים, אותו בלוק בדיוק, רק עם בחירה שונה בתפריט השני:
- ב-then (חשוך): set digital pin [5] to [high] — מדליק את הנורית
- ב-else (מואר): set digital pin [5] to [low] — מכבה אותה
התפריט הראשון בוחר את מספר הפין, התפריט השני בוחר בין high (מתח גבוה, נדלק) ל-low (מתח נמוך, כבוי).
טיפ: שימו לב שהבלוקים האלה בתוך הפיות של ה-if, לא מתחתיו. אם גררתם אותם למטה בטעות, הנורית תהבהב במקום להישמע לחיישן. הצורה מספרת לכם את האמת — בלוק שבפנים מוזח פנימה.
מריצים
⬇ להורדת הקובץ Light_controlled_lamp.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.
ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

אחרי שההעלאה מסתיימת, הנורית צריכה להיות כבויה — בחדר מואר יש מספיק אור.
עכשיו כסו את החיישן ביד. הנורית נדלקת. תורידו את היד — היא נכבית. קחו טלפון עם פנס והאירו על החיישן: היא תיכבה מיד גם אם החדר חשוך.
לא עובד? שתי בדיקות מהירות:
- הנורית דולקת כל הזמן → כנראה החיישן לא מחובר לפין 32, או שהחדר שלכם חשוך יחסית. נסו סף גבוה יותר.
- הנורית כבויה גם כשמכסים → בדקו שהנגד 10kΩ באמת מחובר ל-5V ושהחיישן באמת מחובר ל-GND.
מה קרה כאן
הלוח עושה שלושה דברים, אלפי פעמים בשנייה, בלי לעצור:
- קורא מספר מחיישן האור — בלוק read analog pin [32]
- משווה אותו לסף 2000 — בלוק ה->= הירוק
- מחליט — נורית דולקת או כבויה, לפי איזה פה של ה-if נבחר
זה כל הרעיון של חיישן + תנאי + פעולה. זו התבנית של כמעט כל מכשיר חכם בעולם: מזגן שמודד טמפרטורה ומחליט אם להפעיל מאוורר, דלת אוטומטית שמודדת מרחק ומחליטה אם להיפתח, מקרר שמודד חום ומחליט אם להפעיל את המדחס.
שיניתם רק מספר אחד — 2000 — וכל ההתנהגות של המכשיר משתנה. זה הכוח של תכנות.
תרגילים
הזיזו את הסף. שנו את החלון הלבן מ-2000 ל-1000. העלו מחדש. עכשיו צריך להיות הרבה יותר חשוך כדי שהנורית תידלק. עכשיו נסו 3000 — היא תידלק כמעט תמיד. מה הסף הכי מתאים לחדר שלכם?
הפכו את הכיוון. החליפו בין השניים: high ב-else ו-low ב-then. קיבלתם מנורה שנדלקת דווקא באור — כמו התראה שאומרת ״מישהו פתח את הדלת והכניס אור״.
הוסיפו זמזם. הוסיפו לתוך ה-then בלוק set digital pin נוסף לפין של הזמזם הפעיל משיעור 8. עכשיו כשחשוך — גם אור וגם צליל.
אזור ביניים. גררו בלוק if ... then ... else נוסף לתוך ה-else של הראשון, עם סף של 1200. כך תקבלו שלוש מדרגות: חשוך מאוד, חצי-חושך ומואר. תוכלו להדליק שתי נוריות במקום אחת ולתת לכל מדרגה מראה משלה.


