חיישנים ומפעילים למיקרו-בקרים · פרק 1 — מערכת בקרה: חיישן, בקר, מפעיל וחיוויסמלי מקצוע 33.102 ו-33.002⌂📚🏠
פרק 1

מערכת בקרה: חיישן, בקר, מפעיל וחיווי

כיתות י״א–י״ב · 4 שעות לימוד

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

בסוף הפרק הזה נדע:
  • נשרטט דיאגרמת מלבנים של מערכת בקרה ונקרא בשם לכל מלבן בה.
  • נתאר תהליך מבוקר במילים, בתרשים זרימה ובתרשים בועות.
  • נבחין בין חוג פתוח לחוג סגור, ובין בקרה בדידה לבקרה רציפה, ונחשב את השגיאה e = r − y.
  • נסביר מדוע מוסיפים היסטרזיס לבקרה דו-מצבית.
  • נכתוב סקיצה בלולאת "קריאה – החלטה – ביצוע" ונחשב מה היא תדפיס בצג הטורי.

המבנה העקרוני של מערכת בקרה (Control System Structure)

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

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

חיישןמודדבקרמחליטמפעילמבצעתהליךמבוקרחיווימודיעמשתמשאות מדידהפקודהפעולההגודל הנמדד: טמפרטורה, אור, מרחק, זרם…הגדרותופקודותרואה ושומעמצב המערכתהפרעה
דיאגרמת מלבנים של מערכת בקרה: החיישן מודד את התהליך, הבקר מחליט, המפעיל מבצע, והחיווי מודיע למשתמש. החץ האדום סוגר את החוג
המלבןבערביתתפקידודוגמאות
חיישןالحسّاسממיר גודל פיזיקלי לאות חשמלי (מתח, זרם או רמה לוגית) שהבקר קוראחיישן טמפרטורה, נגד תלוי-אור, מצוף
בקרالمتحكّمקורא את החיישנים ואת פקודות המשתמש, משווה לערך הרצוי ומחליט מה לעשותמיקרו-בקר על Arduino Uno או ESP32
מפעילالمشغّلהופך את פקודת הבקר לפעולה: חום, תנועה או אורמחמם, מנוע, שסתום חשמלי, מגען
חיוויالبيانמודיע לאדם על מצב המערכתנורית חיווי, זמזם, תצוגה
תהליך מבוקרالعملية المُتحكَّم بهاהדבר שאנו מבקריםמים במכל, אוויר בחדר
משתמשالمستخدمקובע את הערך הרצוי ועוקב אחר החיווימכוון את הטמפרטורה הרצויה

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

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

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

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

דוגמה 1.1
בבית פועלת מערכת לניהול הספק. הגבול שקבע המשתמש הוא 32 A. הזרם ששאר העומסים צורכים הוא 24 A. מבקשים להפעיל דוד מים בהספק 2.5 kW במתח 230 V.
(א) נחשב את זרם הדוד.
(ב) האם הבקר מאפשר להפעיל אותו?
(ג) הבקר מחבר את הדוד מחדש רק כשנשאר מרווח של 2 A מתחת לגבול. עד איזה זרם צריכים שאר העומסים לרדת?
פתרון:

(א) הזרם של עומס התנגדותי שווה להספק שלו חלקי המתח:

Ih = PV = 2500230 = 10.87 A

(ב) הזרם הכולל אילו הפעלנו את הדוד:

I = 24 + 10.87 = 34.87 A

ערך זה גדול מהגבול 32 A, ולכן הבקר משאיר את המגען פתוח ומדליק את נורית החיווי.

(ג) נחסר מהגבול את זרם הדוד ואת המרווח:

Iother ≤ 32 − 10.87 − 2 = 19.13 A

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

Ih = 10.87 A
אזהרה: מתח הרשת 230 V מסכן חיים. את חיישן הזרם ואת המגען בלוח הבית מתקין חשמלאי מוסמך בתוך לוח סגור, ובמעבדה עובדים רק עם מודולים מאושרים ובפיקוח המורה. לעולם אין לחבר את הרשת למטריצה. בפרק זה את העומס מייצגת נורית קטנה (LED) שפועלת ב-5 V.

תיאור תהליך מבוקר: מילולי, תרשים זרימה ותרשים בועות (Describing a Process)

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

תיאור מילולי:

  1. בהפעלה המחמם כבוי.
  2. הבקר קורא את הטמפרטורה T פעם בשנייה.
  3. אם T יורדת מתחת ל-23 °C, הבקר מפעיל את המחמם.
  4. אם T עולה מעל 25 °C, הבקר מכבה את המחמם.
  5. בין שני הערכים הבקר אינו משנה דבר: המחמם נשאר במצבו הקודם.
  6. הבקר מציג בצג את T ואת מצב המחמם.

תיאור מילולי קל לכתוב, אבל הוא עלול להיות לא מדויק: מה בדיוק קורה ב-25 °C? לכן נשרטט אותו גם בתרשים.

תרשים זרימה:

התחלהאתחול ההדקים והצגקריאת החיישן: Nחישוב הטמפרטורה TT < 23 °C ?כןהפעלת החימוםלאT > 25 °C ?כןהפסקת החימוםלאהדפסת T ומצב החימוםהמתנה לזמן הדגימהחזרה
תרשים זרימה של התרמוסטט
תרשים זרימה: שרטוט שמראה את סדר הצעדים בתוכנית. האליפסה היא התחלה, המלבן — פעולה, המקבילית — קלט או פלט, והמעוין — שאלה שתשובתה "כן" או "לא".

נעקוב אחר החצים מלמעלה: אחרי האתחול מתחילה לולאה שאינה מסתיימת: קריאה, חישוב, שתי שאלות, הדפסה והמתנה, ואז חזרה לקריאה. אם התשובה לשתי השאלות היא "לא", נגיע להדפסה בלי לשנות את מצב המחמם; זה סעיף 5 בתיאור המילולי.

תרשים בועות (תרשים מצבים):

תרשים בועות / תרשים מצבים: שרטוט שבו כל מצב של המערכת הוא עיגול ("בועה"), וכל מעבר בין שני מצבים הוא חץ, ועליו כתוב התנאי שגורם לו. חץ שחוזר לאותו עיגול פירושו שהמערכת נשארת במצבה.
החימום כבויOFFהחימום פועלONT < 23 °CT > 25 °CT ≥ 23 °CT ≤ 25 °Cהתחלה
תרשים הבועות של התרמוסטט: שני מצבים ושני מעברים

תרשים הבועות מראה בבירור את מה שהתיאור המילולי מסתיר: ב-T = 24 °C המחמם יכול להיות פועל או כבוי — התשובה תלויה במצב הקודם. מערכת כזאת "זוכרת", ולכן בסקיצה נזדקק למשתנה ששומר את המצב.

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

חוג פתוח וחוג סגור (Open and Closed Loop)

חוג פתוח: מערכת בקרה שאינה מודדת את תוצאת פעולתה. הבקר מבצע תוכנית קבועה (למשל לפי זמן) ואינו יודע אם התהליך הגיע לערך הרצוי. דוגמה: השקיית הגינה במשך 10 min בכל בוקר — גם אם ירד גשם בלילה. בדיאגרמת המלבנים שלה אין חיישן ואין את החץ הירוק שבאיור הבא.
חוג סגור: מערכת בקרה שמודדת בעזרת חיישן את תוצאת פעולתה ומחזירה אותה אל הבקר. ההחזרה הזאת נקראת משוב. הבקר משווה את מה שמדד לערך הרצוי ומתקן את פעולתו לפי ההפרש.
ערךרצויr+−שגיאהeבקרמפעילתהליךyהפרעהחיישןערך מצויערך נמדד
חוג סגור: המסלול הירוק הוא המשוב — החיישן מחזיר את הערך המצוי לנקודת ההשוואה, וההפרש הוא השגיאה
e = r − y
דוגמה 1.2
בחדר מסוים הערך הרצוי הוא r = 24 °C.
(א) החיישן מודד y = 21.5 °C.
(ב) אחרי שהשמש נכנסת לחדר הוא מודד y = 25.8 °C. נחשב את השגיאה בכל מקרה ונחליט מה התרמוסטט עושה.
פתרון:

נציב בנוסחת השגיאה: (א) בשורה הראשונה, (ב) בשורה השנייה.

e = r − y = 24 − 21.5 = 2.5 °C
e = r − y = 24 − 25.8 = −1.8 °C

(א) השגיאה חיובית: החדר קר מהרצוי, ולכן הבקר מפעיל את המחמם. (ב) השגיאה שלילית: החדר חם מהרצוי, ולכן הבקר מכבה את המחמם. השמש כאן היא הפרעה.

e = 2.5 °C , e = −1.8 °C

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

שאלה 1.3: מכונת כביסה פועלת לפי תוכנית זמנים קבועה, ומזגן מודד את טמפרטורת החדר. איזו מערכת היא חוג פתוח ואיזו חוג סגור? מהו הערך הרצוי במזגן?
טעות נפוצה: החיישן הוא חלק מן החוג. אם החיישן מתקלקל או שהחוט שלו מתנתק, הבקר רואה ערך שגוי ופועל לפיו: חיישן טמפרטורה מנותק עלול "לקרוא" 0 °C ולהפעיל את המחמם בלי הפסקה. תמיד נבדוק שהקריאה נמצאת בתחום סביר.
▶ניסוי חי — חיישנים ספרתיים במערכת בקרהסימולציה חיה: חיישנים שנותנים לבקר אות "כן/לא", ומקומם במערכות בקרה תעשייתיות.
⚠
המעבדה אינה זמינה כרגע. החומר בפרק שלם גם בלעדיה — ממשיכים לקרוא, וחוזרים לניסוי מאוחר יותר או פותחים אותו ישירות בקישור שמתחת למסגרת.
https://fahed-lab.com/hashmal/sensors#dsens
פתיחת המעבדה בדף נפרד ↗ fahed-lab.com/hashmal/sensors#dsens

בקרה בדידה ובקרה רציפה (Discrete and Continuous Control)

בקרה בדידה: למפעיל יש מספר מוגבל של מצבים. הסוג הפשוט ביותר הוא בקרה דו-מצבית: המחמם פועל בהספק מלא או כבוי. כך גם משאבה עם מצוף, ונורה עם נגד תלוי-אור.
בקרה רציפה: המפעיל מקבל כל ערך בין הערך המזערי לערך המרבי: הספק מחמם מ-0 עד 100%, מהירות מנוע, עוצמת הארה. ככל שהשגיאה גדולה יותר, הפעולה גדולה יותר. בפרקים 10 ו-11 נראה כיצד מיקרו-בקר נותן "ערך שבין שני הערכים" בעזרת אפנון רוחב פולס.

בקרה דו-מצבית עם היסטרזיס:

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

היסטרזיס: בבקרה דו-מצבית זהו שימוש בשני ערכי סף במקום בערך אחד — ערך הפעלה TON וערך כיבוי TOFF. ביניהם יש אזור מת שבו מצב המפעיל אינו משתנה. רוחב האזור:
ΔT = TOFF − TON

חישבנו במחשב את התנהגותו של חדר קטן במודל מפושט: טמפרטורת הסביבה 18 °C, המחמם מעלה את הטמפרטורה בקצב 0.8 °C/min, והחדר מאבד חום ככל שהוא חם יותר מהסביבה. הבקר קורא פעם בשנייה, ו-TON = 23 °C , TOFF = 25 °C. אלה מספרים לדוגמה של המודל, ולא ערכים של מכשיר מסוים.

010203040501820232527t [min]TTONTOFF
01020304050OFFONt [min]
למעלה: טמפרטורת החדר T ביחידות °C כפונקציה של הזמן, והקווים המקווקווים TON ו-TOFF. למטה: מצב המחמם. תוצאת הדמיה במודל המפושט

אם כן, המחיר של ההיסטרזיס הוא תנודת הטמפרטורה בתחום ΔT, והרווח הוא מספר קטן מאוד של מיתוגים. ככל שנרחיב את ΔT, יפחת מספר המיתוגים ותגדל התנודה.

שאלה 1.4: דוד מים חשמלי פועל בבקרה דו-מצבית עם TON = 58 °C ו-TOFF = 62 °C. מהו רוחב אזור ההיסטרזיס? המים כעת ב-60 °C והטמפרטורה שלהם עולה. האם הדוד פועל? ומה אם הם ב-60 °C והטמפרטורה יורדת?
טעות נפוצה: רוחב אזור היסטרזיס אפס (TON = TOFF) אינו "דיוק גבוה יותר", אלא מיתוג בלי הפסקה ששוחק את הממסר. כך גם אם נכתוב את שני הערכים הפוך (TON גדול מ-TOFF): ההיסטרזיס נעלם ונשאר למעשה סף אחד.

לולאת הבקר: קריאה, החלטה וביצוע (Read – Decide – Act)

לסקיצה יש שתי פונקציות: setup() רצה פעם אחת בהפעלה, ו-loop() חוזרת בלי הפסקה. בכל סבב של loop() הבקר מבצע שלושה צעדים — והם בדיוק המלבנים של דיאגרמת המלבנים (ובסקיצה שבהמשך נמצא אותם בהערות // 1. read , // 2. decide , // 3. act):

  1. קריאה: הבקר קורא את החיישנים — analogRead() למבוא תקבילי או digitalRead() למבוא ספרתי.
  2. החלטה: הבקר ממיר את הערך הגולמי ליחידה פיזיקלית ומשווה אותו לערך הרצוי (משפט if).
  3. ביצוע: הבקר כותב למוצאים — digitalWrite() למפעיל ולחיווי, ו-Serial.print() לצג.
דגימה: קריאת החיישן ברגעים נפרדים במקום לקרוא אותו כל הזמן. הזמן בין שתי קריאות עוקבות הוא זמן הדגימה Ts ביחידות [s], ומספר הקריאות בשנייה הוא תדר הדגימה fs ביחידות [Hz]:
fs = 1Ts
דוגמה 1.3
בתרמוסטט הבקר קורא פעם בכל 1000 ms. במודל החדר הטמפרטורה ליד 25 °C עולה בקצב 0.45 °C/min.
(א) נחשב את תדר הדגימה ואת מספר הקריאות בדקה.
(ב) בכמה משתנה הטמפרטורה בין שתי קריאות? האם הדגימה מהירה מספיק?
פתרון:

(א) Ts = 1 s (המשוואה הראשונה), ובדקה יש 60 קריאות. (ב) נחלק את השינוי בדקה במספר הקריאות (המשוואה השנייה):

fs = 1Ts = 11 = 1 Hz
ΔTs = 0.4560 = 0.0075 °C

השינוי בין שתי קריאות קטן בהרבה מרוחב אזור ההיסטרזיס 2 °C, ולכן הדגימה מהירה מאוד עבור התהליך האיטי הזה. לעומת זאת, לחצן שאדם לוחץ עליו דורש קריאה מהירה בהרבה, ולכן איננו משתמשים ב-delay() ארוך בתוך הלולאה: בזמן הזה הבקר אינו קורא דבר.

fs = 1 Hz

סקיצה ראשונה: תרמוסטט עם היסטרזיס (First Sketch: Thermostat)

נבנה את התרמוסטט על לוח Arduino Uno בלי חיישן טמפרטורה אמיתי: פוטנציומטר במבוא A0 מייצג את החיישן — נסובב את הידית שלו, ו"הטמפרטורה תשתנה". נורית LED במוצא D8 מייצגת את המחמם. בפרק 5 נחליף את הפוטנציומטר בחיישן טמפרטורה אמיתי, ובפרק 10 נחליף את הנורית בממסר.

Arduino Uno5VA0GNDD8GND10 kΩפוטנציומטרבמקום חיישן טמפרטורה330 Ωנורית LED במקום המחמם
תרשים החיבור: הפוטנציומטר בין 5 V ל-GND, והזחלן שלו אל A0; הנורית והנגד שלה מ-D8 אל GND

חישוב הנגד הטורי של הנורית:

דוגמה 1.4
נחשב את הנגד הטורי של הנורית האדומה. VCC = 5 V, המתח הקדמי של הנורית VF = 2 V (ערך טיפוסי לפי גיליון הנתונים של נורית אדומה), והזרם הרצוי IF = 10 mA.
פתרון:
R = VCC − VFIF = 5 − 210·10−3 = 300 Ω

נבחר את הערך המסחרי הקרוב הגדול יותר מסדרת E12: R = 330 Ω. הזרם בפועל:

IF = 5 − 2330 = 9.1 mA

זה פחות מ-20 mA, הזרם המומלץ להדק של ATmega328P שב-Uno.

R = 330 Ω

מהערך הגולמי לטמפרטורה:

פוטנציומטר של 10 kΩ מחובר בין 5 V ל-GND (זורם בו רק 0.5 mA), ולכן מתח הזחלן משתנה מ-0 עד 5 V. הממיר התקבילי-ספרתי של ה-Uno נותן ערך גולמי N מ-0 עד Nmax = 1023. נחליט שתחום "החיישן" הוא מ-0 עד Tmax = 50 °C, וכך הערך הגולמי הופך לטמפרטורה ביחס ישר פשוט:

T = N·TmaxNmax

הסקיצה:

תרמוסטט עם היסטרזיס: הפוטנציומטר מייצג את החיישן, והנורית מייצגת את המחמם Arduino Uno · thermostat_hyst.ino
const int SENSOR = A0;        // potentiometer = temperature sensor (model)
const int HEATER = 8;         // LED = heater (model)
const float T_MAX = 50.0;     // N = 1023 -> 50 C
const float T_ON  = 23.0;     // below this: heater ON
const float T_OFF = 25.0;     // above this: heater OFF
const unsigned long PERIOD = 1000;   // sampling period [ms]

bool heaterOn = false;
unsigned long last = 0;
void setup() {
  pinMode(HEATER, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (millis() - last < PERIOD) return;
  last = millis();
  int n = analogRead(SENSOR);                    // 1. read
  float t = n * T_MAX / 1023.0;
  if (t < T_ON) heaterOn = true;                 // 2. decide
  else if (t > T_OFF) heaterOn = false;
  digitalWrite(HEATER, heaterOn ? HIGH : LOW);   // 3. act
  Serial.print("N = "); Serial.print(n);
  Serial.print("  T = "); Serial.print(t, 1);
  Serial.println(heaterOn ? " C  heater: ON" : " C  heater: OFF");
}

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

Serial Monitor · קריאה לדוגמה
N = 532  T = 26.0 C  heater: OFF
N = 501  T = 24.5 C  heater: OFF
N = 486  T = 23.8 C  heater: OFF
N = 471  T = 23.0 C  heater: OFF
N = 460  T = 22.5 C  heater: ON
N = 452  T = 22.1 C  heater: ON
N = 466  T = 22.8 C  heater: ON
N = 481  T = 23.5 C  heater: ON
N = 497  T = 24.3 C  heater: ON
N = 512  T = 25.0 C  heater: OFF
N = 522  T = 25.5 C  heater: OFF
N = 530  T = 25.9 C  heater: OFF

נשווה את השורות N = 486 (בדרך למטה) ו-N = 481 (בדרך למעלה): הטמפרטורה כמעט זהה, בתוך אזור ההיסטרזיס, אבל המחמם כבוי בראשונה ופועל בשנייה. זה ההיסטרזיס, כפי שראינו אותו בתרשים הבועות.

דוגמה 1.5
נחשב את הערכים הגולמיים שבהם מצב המחמם משתנה:
(א) ה-N הגדול ביותר שמפעיל את המחמם (T קטנה מ-23 °C).
(ב) ה-N הקטן ביותר שמכבה אותו (T גדולה מ-25 °C).
פתרון:

נבודד את N מהנוסחה: N = T·NmaxTmax.

NON = 23 · 102350 = 470.58
NOFF = 25 · 102350 = 511.5

(א) N הוא מספר שלם והתנאי הוא "קטן מ־", ולכן הערך הגדול ביותר שמפעיל את המחמם הוא N = 470. (ב) התנאי הוא "גדול מ־", ולכן הערך הקטן ביותר שמכבה אותו הוא N = 512. נשווה לצג: N = 471 לא הפעיל את המחמם, ו-N = 512 כיבה אותו.

NON = 470 , NOFF = 512
שאלה 1.5: המחמם כבוי, ואז הבקר קורא בזו אחר זו את הערכים הגולמיים 505 , 468 , 490 , 515. מה מצב המחמם אחרי כל קריאה?
אזהרה: הדק של Arduino נותן עד 20 mA (מומלץ), והגבול המוחלט הוא 40 mA (גיליון הנתונים של ATmega328P). מחמם אמיתי לעולם אינו מחובר ישירות להדק: מפעילים אותו דרך טרנזיסטור או ממסר עם דיודת חופש (פרק 10), ואם הוא פועל במתח הרשת — רק דרך מודול מאושר ובפיקוח המורה.
▶ניסוי חי — מעבדת תכנות Arduinoנדביק את הסקיצה במעבדה, נסובב את הפוטנציומטר ונראה את הנורית ואת הצג הטורי משתנים — בלי לוח אמיתי.
⚠
המעבדה אינה זמינה כרגע. החומר בפרק שלם גם בלעדיה — ממשיכים לקרוא, וחוזרים לניסוי מאוחר יותר או פותחים אותו ישירות בקישור שמתחת למסגרת.
https://fahed-lab.com/micro/arduino_code_lab
פתיחת המעבדה בדף נפרד ↗ fahed-lab.com/micro/arduino_code_lab

מפת הספר: חיישנים, מפעילים וחיווי (Book Map)

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

פרקנושאדוגמאות
2–4היסודות: מאפיינים ומבואותדיוק, נגד משיכה למעלה, התאמת אותות
5טמפרטורה ולחותנגד תלוי-טמפרטורה, LM35, DS18B20, DHT22
6אורנגד תלוי-אור, פוטודיודה
7מרחק, נוכחות ותנועהחיישן על-קולי, חיישן תנועה
8חיישנים תעשייתייםחיישני קרבה, מפסק גבול
9זרם, מתח והספקחיישן זרם, מחלק מתח
10הפעלת עומסיםטרנזיסטור כמפסק, ממסר
11מנועיםמנוע סרוו, מנוע צעד
12מפעילים תעשייתייםמגען, שסתום חשמלי
13חיווי ותצוגהזמזם, צג גביש נוזלי
14פרויקט מסכםמערכת בקרה שלמה

סיכום נוסחאות הפרק:

החוקהנוסחה
הזרם של עומס התנגדותיI = PV
השגיאה בחוג סגורe = r − y
רוחב אזור ההיסטרזיסΔT = TOFF − TON
תדר הדגימהfs = 1Ts
המתח מתוך הערך הגולמיV = N·VrefNmax
מערך גולמי לטמפרטורהT = N·TmaxNmax
הנגד הטורי של הנוריתR = VCC − VFIF

מילון מונחים:

עבריתEnglishالعربية
מערכת בקרהControl systemنظام التحكّم
בקרה ממוחשבתComputer controlالتحكّم المحوسب
חיישןSensorالحسّاس (المستشعر)
בקר · מיקרו-בקרController · Microcontrollerالمتحكّم · المتحكّم الدقيق
מפעילActuatorالمشغّل
חיוויIndicationالبيان
תהליך מבוקרControlled processالعملية المُتحكَّم بها
דיאגרמת מלבניםBlock diagramمخطّط الكتل
תרשים זרימהFlowchartمخطّط سير العمليات
תרשים בועות / מצביםState diagramمخطّط الحالات
חוג פתוחOpen loopالحلقة المفتوحة
חוג סגורClosed loopالحلقة المغلقة
משובFeedbackالتغذية الراجعة
ערך רצויSet pointالقيمة المطلوبة
ערך מצויActual valueالقيمة الفعلية
שגיאהErrorالخطأ
הפרעהDisturbanceالاضطراب
בקרה בדידהDiscrete controlالتحكّم المتقطّع
בקרה רציפהContinuous controlالتحكّم المستمر
בקרה דו-מצביתOn/off controlتحكّم تشغيل-إيقاف
היסטרזיסHysteresisالتخلّف (الهستيريسيس)
תרמוסטטThermostatمنظّم الحرارة (الثرموستات)
דגימהSamplingأخذ العيّنات
פוטנציומטרPotentiometerالمقاومة المتغيّرة (البوتنشيومتر)
ערך גולמיRaw valueالقيمة الخام
מבוא · מוצאInput · Outputالمدخل · المخرج
ממיר תקבילי-ספרתיAnalog-to-digital converterالمحوّل التماثلي-الرقمي
חיישן זרםCurrent sensorحسّاس التيار
מגעןContactorالملامس (الكونتاكتور)
סקיצהSketchالبرنامج (sketch)

שאלות לתרגול:

1.
במכל מים יש: חיישן מפלס, בקר, משאבה וזמזם שמתריע כשהמכל מתמלא. שרטטו את דיאגרמת המלבנים וכתבו את שמו של כל מלבן.
תשובות: חיישן: חיישן המפלס; בקר; מפעיל: המשאבה; חיווי: הזמזם; תהליך: מפלס המים במכל
2.
סווגו כל מערכת — חוג פתוח או חוג סגור:
(א) רמזור שמתחלף כל 30 s.
(ב) מגהץ עם תרמוסטט.
(ג) השקיה לפי שעון.
(ד) משאבה עם שני מצופים.
תשובות: (א) פתוח (ב) סגור (ג) פתוח (ד) סגור
3.
הערך הרצוי במדגרה הוא 37 °C. חשבו את השגיאה כשהערך המצוי הוא:
(א) 35.5 °C.
(ב) 38.2 °C. מה פירוש הסימן של השגיאה בכל מקרה?
תשובות: (א) e = 1.5 °C — קר מהרצוי (ב) e = −1.2 °C — חם מהרצוי
4.
תרמוסטט מפעיל את המחמם מתחת ל-19 °C ומכבה אותו מעל 21.5 °C.
(א) מהו רוחב אזור ההיסטרזיס?
(ב) שרטטו תרשים בועות וכתבו את התנאי על כל חץ.
תשובות: (א) ΔT = 2.5 °C (ב) שני מצבים; מ"כבוי" ל"פועל": T קטנה מ-19 °C; מ"פועל" ל"כבוי": T גדולה מ-21.5 °C
5.
בסקיצת התרמוסטט (Tmax = 50 °C) הבקר קורא N = 389. חשבו את T ואת המתח ב-A0.
תשובות: T = 19.01 °C , V = 1.9 V
6.
משנים בסקיצה ל-TON = 20 °C ו-TOFF = 22 °C. חשבו את הערך הגולמי הגדול ביותר שמפעיל את המחמם ואת הערך הגולמי הקטן ביותר שמכבה אותו.
תשובות: הפעלה עד N = 409, כיבוי החל מ-N = 451
7.
רוצים זרם של 15 mA בנורית אדומה שהמתח הקדמי שלה 2 V (ערך טיפוסי), ממוצא של 5 V.
(א) חשבו את התנגדות הנגד הטורי.
(ב) בחרו ערך מסדרת E12 וחשבו את הזרם בפועל.
תשובות: (א) R = 200 Ω (ב) 220 Ω , I = 13.6 mA
8.
משנים את PERIOD ל-250 ms. חשבו את תדר הדגימה ואת מספר הקריאות בדקה.
תשובות: fs = 4 Hz, 240 קריאות בדקה
9.
המחמם כבוי. סקיצת התרמוסטט קוראת בזו אחר זו: 530 , 515 , 480 , 468 , 475 , 500 , 513. כתבו את מצב המחמם אחרי כל קריאה.
תשובות: כבוי, כבוי, כבוי, פועל, פועל, פועל, כבוי
10.
במערכת לניהול הספק הגבול הוא 25 A, שאר העומסים צורכים 18 A, ומבקשים להפעיל מחמם של 3 kW ב-230 V.
(א) חשבו את זרם המחמם.
(ב) האם הבקר מאפשר להפעיל אותו?
תשובות: (א) Ih = 13.04 A (ב) הסכום 31.04 A, גדול מהגבול, אינו מאפשר
11.
לפי הגרף של מודל החדר: כמה דקות פועל המחמם בכל מחזור, וכמה דקות הוא כבוי? כמה פעמים שינה את מצבו במשך שעה?
תשובות: פועל כ-4 min וכבוי כ-6.7 min; 10 מיתוגים
12.
תלמיד כתב const float T_ON = 25.0; ו-const float T_OFF = 23.0; (בסדר הפוך). מה קורה כשהטמפרטורה היא 24 °C?
תשובות: ב-24 °C התנאי הראשון מתקיים, ולכן המחמם פועל. למעשה הוא פועל מתחת ל-25 °C וכבוי מ-25 °C ומעלה: סף אחד בלי היסטרזיס, ולכן המחמם מתנדנד סביב 25 °C
13.
תארו במילים ובתרשים זרימה מערכת תאורה לחדר מדרגות: לחצן מדליק את הנורה, והנורה נכבית מעצמה אחרי 60 s. האם זו מערכת בחוג פתוח או בחוג סגור?
תשובות: חוג פתוח: הבקר אינו מודד את התאורה, אלא רק סופר זמן
תשובות סופיות לשאלות הפרק
1.1 הנגד התלוי-אור — חיישן; הממסר ונורת הרחוב — מפעיל; הנורית הקטנה בלוח — חיווי; התהליך: תאורת הרחוב
1.2 שני מצבים: "המשאבה כבויה" ו"המשאבה פועלת". מ"כבויה" ל"פועלת": המים מתחת למצוף התחתון; מ"פועלת" ל"כבויה": המים הגיעו למצוף העליון
1.3 מכונת הכביסה — חוג פתוח; המזגן — חוג סגור, והערך הרצוי הוא הטמפרטורה שהמשתמש מכוון
1.4 ΔT = 4 °C; בעלייה הדוד פועל (הטמפרטורה עוד לא הגיעה ל-62 °C); בירידה הדוד כבוי (הטמפרטורה עוד לא הגיעה ל-58 °C)
1.5 505: כבוי , 468: פועל , 490: פועל , 515: כבוי
נוסחאון הספר: כל נוסחאות הפרק הזה מרוכזות, עם סרטוטיהן וטבלאות הסמלים שלהן, בפרק 15 — נוסחאון הספר.