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

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

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

חיישן אור — הלוח לומד להרגיש אם חשוך או מואר

מה בשיעור?

  • להסביר למה פנס רחוב נדלק לבד כשמחשיך
  • לזהות נגד תלוי אור ולדעת מה קורה לו באור ובחושך
  • להבין מה זה אות אנלוגי ומה ההבדל בינו לבין אות דיגיטלי
  • לחבר מעגל מחלק מתח עם נגד 10kΩ על לוח הניסוי
  • לגרור את הבלוק read analog pin ולבחור בו את מספר הפין
  • לקרוא מספרים מהמסך של המחשב ולהבין מה הם אומרים

מה נלמד כאן

  • למה מכשירים חכמים צריכים לדעת אם חשוך או מואר
  • מה זה נגד תלוי אור ואיך הוא עובד
  • מה ההבדל בין אות דיגיטלי (שני מצבים) לאות אנלוגי (המון מצבים)
  • איך הלוח הופך מתח למספר בין 0 ל-4095
  • לחבר מעגל של חיישן אור ולהריץ אותו בבלוקים

פנס הרחוב שנדלק לבד

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

חדר מגורים אותו בארבע שעות של היום: בוקר, צהריים, ערב ולילה, עם כמויות אור שונות

מאחורי הקסם הזה עומד רכיב קטנטן שעולה כמה אגורות: חיישן אור. התפקיד שלו הוא אחד בלבד — לספר למחשב כמה אור יש עכשיו.

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


הרכיבים

הנגד תלוי האור

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

נגד תלוי אור — רכיב עגול כתום עם קווים מפותלים בכסף ושתי רגליים מתכתיות

תזכרו מהשיעורים הקודמים מה זה נגד: רכיב שמקשה על הזרם לעבור. ככל שההתנגדות גדולה יותר, פחות זרם עובר.

הנגד הזה מיוחד כי ההתנגדות שלו משתנה לפי כמות האור:

  • הרבה אור → ההתנגדות קטנה → הזרם עובר בקלות
  • מעט אור → ההתנגדות גדולה → לזרם קשה לעבור

החומר שממנו הוא עשוי נקרא מוליך למחצה. כשאור פוגע בו, הוא משחרר מטענים חשמליים שיכולים לזוז — ולכן החשמל עובר יותר בקלות. בחושך אין אור שישחרר אותם, והמעבר נחסם. אין כאן שום חלק שזז, זה קורה לגמרי בתוך החומר.

שימו לב: לנגד תלוי אור אין פלוס ומינוס. אפשר לחבר אותו לשני הכיוונים, בניגוד לנורית.

אות דיגיטלי מול אות אנלוגי

עד עכשיו עבדנו עם אותות דיגיטליים — שני מצבים בלבד. לחצן לחוץ או לא לחוץ. נורית דולקת או כבויה. HIGH או LOW. כמו מתג של אור בקיר.

אור זה סיפור אחר. אור הוא לא ״יש או אין״. יש חצי אור, יש רבע אור, יש שקיעה, יש יום מעונן. זה נקרא אות אנלוגי — אות שיכול להיות בכל ערך שבין המינימום למקסימום. כמו דימר של תאורה במקום מתג רגיל.

הלוח שלנו הוא מחשב, והוא יודע לעבוד רק עם מספרים. לכן יש בתוכו רכיב מיוחד שנקרא ממיר אנלוגי-דיגיטלי. הוא מודד את המתח שמגיע לפין, וממיר אותו למספר בין 0 ל-4095. תחשבו על סרגל עם 4096 קווים קטנים: 0 בקצה התחתון (0 וולט), 4095 בקצה העליון (המתח המלא).

מעגל מחלק מתח

יש בעיה קטנה: הלוח לא יודע למדוד התנגדות. הוא יודע למדוד רק מתח. אז צריך טריק שיהפוך שינוי בהתנגדות לשינוי במתח.

הטריק הזה נקרא מחלק מתח, ובשביל זה מחברים את הנגד תלוי האור בטור עם נגד רגיל של 10kΩ:

תרשים המעגל: 5 וולט, נגד 10 קילו-אוהם, נקודת מדידה לפין 32, נגד תלוי אור, וקרקע

שני הנגדים מתחלקים ביניהם במתח, בדיוק כמו ששני ילדים מתחלקים בשוקולד. הנקודה באמצע — בין שני הנגדים — היא הנקודה שאותה הלוח מודד. החלק של כל נגד תלוי בגודל שלו:

נוסחת מחלק המתח: המתח ביציאה שווה למתח ההזנה כפול ההתנגדות של החיישן חלקי סכום שתי ההתנגדויות

אל תיבהלו מהנוסחה, מספיק לזכור את השורה התחתונה:

  • חושך → התנגדות החיישן גדולה → המתח בנקודה עולה → המספר על המסך גדול
  • אור חזק → התנגדות החיישן קטנה → המתח בנקודה יורד → המספר על המסך קטן

זה קצת הפוך ממה שהיינו מצפים, ולכן שווה לזכור את זה: ככל שיותר חשוך, המספר יותר גדול.

אילו פינים יודעים למדוד אנלוגי

לא כל פין בלוח יודע לקרוא מתח. הפינים שיודעים הם 2, 4, 12, 13, 14, 15, 25, 26, 27, 32, 33, 34, 35, 36 ו-39. אנחנו נשתמש ב-פין 32.

⚠️ טיפ לעתיד: כשנתחיל להשתמש ב-Wi-Fi בשיעורים המתקדמים, הפינים 2, 4, 12, 13, 14, 15, 25, 26 ו-27 עלולים להחזיר מספרים שגויים. הפינים 32 עד 39 תמיד בטוחים, אז כדאי להרגיל את עצמכם אליהם.


החיבור

צריך: לוח ESP32, לוח ניסוי, נגד תלוי אור אחד, נגד 10kΩ אחד ושלושה חוטים.

תרשים חיבור: נגד תלוי אור ונגד 10 קילו-אוהם על לוח הניסוי, מחוברים ללוח ESP32 בפינים 5 וולט, GND ופין 32

הסדר:

  1. תקעו את הנגד תלוי האור בלוח הניסוי, כל רגל בשורה אחרת.
  2. תקעו את הנגד 10kΩ כך שרגל אחת שלו תהיה באותה שורה עם רגל אחת של החיישן. שם נולדת נקודת המדידה.
  3. מהרגל השנייה של הנגד 10kΩ — חוט אדום אל 5V בלוח.
  4. מהרגל השנייה של החיישן — חוט אל GND.
  5. מהשורה המשותפת באמצע — חוט אל פין 32.

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


הבלוקים

הבלוק החדש של השיעור הוא:

הבלוק read analog pin עם תפריט נפתח שבו נבחר המספר 32

read analog pin [32] — ״קרא את הפין האנלוגי 32״. הבלוק נמצא בקטגוריה Robots.

שימו לב לצורה שלו: הוא עגול בקצוות, לא מלבני. בלוק עגול הוא בלוק שנותן ערך — הוא לא עושה פעולה בעצמו, הוא מחזיר מספר. לכן אי אפשר לשים אותו לבד בתוכנית; צריך להכניס אותו לתוך חור עגול בבלוק אחר. בדיוק כמו שאי אפשר להגיד רק ״שבע״ — צריך להגיד מה עושים עם השבע.

התפריט הנפתח [32] בוחר את מספר הפין. אם תעבירו את החוט לפין 33, תצטרכו לשנות גם כאן ל-33, אחרת הלוח יקרא פין ריק.

והנה כל התוכנית:

תוכנית בלוקים: start the program, בתוך forever בלוק serial print עם הערך של read analog pin 32

שלושה בלוקים בלבד:

  1. start the program — הכובע הצהוב שבו כל תוכנית מתחילה.
  2. forever — בלוק הלולאה. שימו לב לצורה: הוא עוטף את מה שבתוכו כמו זרוע, ובתחתית שלו יש חץ חוזר. כל מה שבפנים ירוץ שוב ושוב בלי סוף.
  3. serial print [115200] (read analog pin [32]) — ״שלח למסך המחשב״. המספר 115200 הוא מהירות התקשורת בין הלוח למחשב. בתוך החור העגול שלו יושב הבלוק העגול שקורא את הפין.

זה הרעיון המרכזי כאן: בלוק אחד יושב בתוך בלוק אחר. הפנימי אומר ״כמה אור יש״, והחיצוני אומר ״תשלח את זה למסך״.


מריצים

⬇ להורדת הקובץ Photoresistor.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.

ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

אחרי הצריבה פותחים את חלון המסך של ACECode, ומיד מתחילים לזרום מספרים:

חלון הפלט של ACECode מציג מספרים סביב 486 שמתעדכנים בזמן אמת

עכשיו הניסוי האמיתי: כסו את החיישן ביד. המספר יקפוץ מיד למעלה, עד 4095.

חלון הפלט מציג 4095 כשהחיישן מכוסה, ומתחתיו תצלום של המעגל הבנוי על לוח הניסוי

תורידו את היד — המספר יורד חזרה. תכוונו פנס של טלפון על החיישן — המספר יצנח כמעט ל-0. נסו ליד החלון, נסו בחושך, נסו מתחת למנורה. כל מקום בבית ייתן לכם מספר אחר.


מה קרה כאן

הלוח מבצע עכשיו שלושה צעדים, מאות פעמים בשנייה:

  1. מודד את המתח בנקודה שבין שני הנגדים.
  2. ממיר את המתח הזה למספר בין 0 ל-4095.
  3. שולח את המספר למסך של המחשב.

והכול עטוף ב-forever, ולכן זה חוזר בלי הפסקה. זה כל הסוד של פנס הרחוב: מדידה, המרה, החלטה — רק שבפנס יש גם חלק שמדליק את המנורה כשהמספר עובר גבול מסוים. בדיוק את זה נבנה בשיעור מנורה שנדלקת בחושך.


תרגילים

1. מפת אור של הבית. רשמו על דף ארבעה מקומות: ליד החלון, במרכז החדר, בתוך מגירה, ומתחת למנורה דלוקה. קחו את הלוח לכל מקום ורשמו את המספר. איפה יצא הכי גדול? זה המקום הכי חשוך.

2. תעבירו פין. העבירו את החוט מפין 32 לפין 33, ואל תשנו כלום בתוכנית. מה קורה עכשיו? אחר כך שנו בבלוק read analog pin את התפריט מ-32 ל-33 — והכול חוזר לעבוד.

3. תאטו את הקצב. המספרים רצים מהר מדי בשביל לקרוא. הוסיפו בתוך ה-forever, מתחת ל-serial print, בלוק wait [1] seconds מקטגוריית Control. עכשיו מגיע מספר אחד בשנייה.

4. אזעקת מגירה. חשבו בלי לבנות עדיין: אם תרצו שהלוח יידע מתי מישהו פתח את המגירה, באיזה מספר תבחרו כגבול? רמז — תמדדו קודם את המספר במגירה סגורה, ואת המספר במגירה פתוחה, ותבחרו מספר באמצע.

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

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

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