חיישנים ומפעילים למיקרו-בקרים · פרק 2 — מאפייני חיישנים ומדידהסמלי מקצוע 33.102 ו-33.002⌂📚🏠
פרק 2

מאפייני חיישנים ומדידה

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

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

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

חיישן ופונקציית התמסורת (Sensor and Transfer Function)

חיישן: רכיב שמושפע מגודל פיזיקלי (טמפרטורה, אור, לחץ, מרחק…) ומוסר אות חשמלי שתלוי בערכו. החיישן הוא סוג של מתמר: רכיב שממיר אנרגיה מצורה אחת לצורה אחרת; החיישן ממיר מן הגודל הפיזיקלי לחשמל, והמפעיל — בכיוון ההפוך.
הגודל הנמדדT · p · d · %RHהחיישןLM35 · DHT22הבקרArduino · ESP32אנרגיה: חום, אור…אות חשמליגודל פיזיקליV · I · נתונים ספרתיים
שרשרת המדידה: הגודל הפיזיקלי ← החיישן ← אות חשמלי ← הבקר
פונקציית התמסורת (אופיין): הקשר בין המוצא של החיישן לבין הגודל הנמדד. גיליון הנתונים נותן אותו במשפט, בטבלה או בגרף. בחיישנים רבים הקשר הוא קו ישר: כל יחידה של הגודל הנמדד משנה את המוצא באותו שיעור.

החיישן LM35 הוא דוגמה ברורה: מתח המוצא שלו עומד ביחס ישר לטמפרטורה במעלות צלזיוס, וכל מעלה מעלה את המוצא ב-10 mV (ערך טיפוסי לפי גיליון הנתונים). תחום המדידה שלו לפי גיליון הנתונים הוא בין −55 °C ל-150 °C; ערכים שליליים דורשים חיבור מיוחד, ובחיבור הפשוט עם הזנה יחידה הוא מודד רק מעל 2 °C בערך.

0501001500.51.01.5T [°C]Vout [V](37 ; 0.37)ΔT = 50 °CΔV = 0.5 VS = 10 mV/°C
פונקציית התמסורת של החיישן LM35: Vout = 10 mV/°C · T
Arduino Uno5VA0GNDLM35+VSVOUTGND10 mV/°Cהפאה השטוחה וסדר ההדקים לפי גיליון הנתונים
חיבור LM35 לבקר: +VS אל 5 V, VOUT אל A0, ו-GND אל GND
דוגמה 2.1
חיישן LM35 נמצא בחדר שהטמפרטורה בו 37 °C. מהו מתח המוצא שלו?
פתרון:
Vout = 10 mV/°C · 37 °C = 370 mV = 0.37 V
Vout = 0.37 V
שאלה 2.1: קראנו מ-LM35 את המתח Vout = 0.62 V. מהי הטמפרטורה?
אזהרה: אם נחבר את LM35 הפוך (נחליף בין הדקי ההזנה), הוא מתחמם מהר ועלול להיהרס, ואף לכוות את האצבע. לפני החיבור נבדוק את סדר ההדקים בשרטוט שבגיליון הנתונים.
▶ניסוי חי — חיישנים תקבילייםהדמיה חיה: חיישני טמפרטורה, לחץ ומפלס; נשנה את הגודל הנמדד ונראה את המוצא של החיישן.
⚠
המעבדה אינה זמינה כרגע. החומר בפרק שלם גם בלעדיה — ממשיכים לקרוא, וחוזרים לניסוי מאוחר יותר או פותחים אותו ישירות בקישור שמתחת למסגרת.
https://fahed-lab.com/hashmal/sensors#asens
פתיחת המעבדה בדף נפרד ↗ fahed-lab.com/hashmal/sensors#asens

סוגי חיישנים וסוגי מוצא (Sensor and Output Types)

חיישן פעיל: מפיק את האות החשמלי שלו מן האנרגיה של הגודל הנמדד עצמו, בלי מקור הזנה. דוגמה: צמד תרמי מפיק כמה מיליוולטים מהפרש טמפרטורות.
חיישן סביל (פסיבי): זקוק למקור הזנה חיצוני כדי למסור אות. דוגמאות: NTC ו-LDR רק משנים את ההתנגדות שלהם, ונדרש מחלק מתח מוזן; וכך גם כל חיישן שיש בו מעגל אלקטרוני, כמו LM35 ו-DHT22. שימו לב: אצל חלק מן המוכרים "פעיל" פירושו "יש בו מעגל אלקטרוני"; בספר הזה LM35 הוא חיישן סביל, כי הוא אינו פועל בלי הזנה.

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

5tV
מוצא תקבילי: מתח שמשתנה ברציפות
5tV
מוצא דו-מצבי: 0 או 5 V
5tV0110100110
מוצא ספרתי: נתונים ברצף של פולסים

מוצא תקבילי (LM35, מחלק מתח עם NTC או LDR) נחבר להדק תקבילי ונקרא בעזרת analogRead(); מוצא דו-מצבי (מפסק גבול, חיישן תנועה PIR, מצוף) נחבר להדק ספרתי ונקרא בעזרת digitalRead(); ומוצא ספרתי (DHT22, DS18B20, חיישני I2C) נקרא דרך הדק ספרתי ובעזרת ספרייה. החיישן העל-קולי HC-SR04 מוסר פולס שרוחבו עומד ביחס ישר למרחק, ונמדוד אותו בעזרת pulseIn().

שאלה 2.2: לכל חיישן כתבו: פעיל או סביל? ומה סוג המוצא שלו?
(א) צמד תרמי.
(ב) LDR במחלק מתח.
(ג) DHT22.

תחום מדידה, רגישות ורזולוציה (Range, Sensitivity, Resolution)

תחום מדידה: הטווח שבין הערך הקטן ביותר xmin לערך הגדול ביותר xmax שהחיישן יכול למדוד לפי גיליון הנתונים. רוחב התחום (Span) הוא ההפרש ביניהם; הוא נקרא גם סקאלה מלאה ומסומן FS: FS = xmax − xmin. על קריאה שמחוץ לתחום אי אפשר לסמוך.
רגישות: השינוי במוצא כשהגודל הנמדד משתנה ביחידה אחת, כלומר השיפוע של פונקציית התמסורת. הרגישות של LM35 היא 10 mV/°C: כל מעלת צלזיוס מעלה את המוצא ב-10 mV. ככל שהרגישות גדולה יותר, קל יותר למדוד שינוי קטן.
−60−40−20020406080100תחום מדידה120 °CTmin = −40 °CTmax = 80 °C°C
תחום מדידת הטמפרטורה של DHT22 (ערך טיפוסי לפי גיליון הנתונים): FS = 80 − (−40) = 120 °C
025500.51.0T [°C]V [V]A: 20 mV/°CB: 10 mV/°C
הרגישות של A כפולה מזו של B: אותו שינוי ב-T נותן שינוי כפול ב-V

ממתח למספר: הממיר התקבילי-ספרתי:

הבקר אינו עובד ישירות עם מתח. הממיר התקבילי-ספרתי שבתוכו משווה את המתח בהדק למתח הייחוס Vref, ומוסר מספר שלם שנקרא הערך הגולמי N. ממיר בן n סיביות מחלק את הטווח שבין 0 ל-Vref ל-2n רמות, ולכן הערך הגולמי הוא בין 0 ל-Nmax = 2n − 1:

הלוחמספר הסיביות nמספר הרמות 2nהערך הגולמי Nמתח הייחוס Vref
Arduino Uno1010240…10235 V
ESP321240960…40953.3 V

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

V = N·VrefNmax
דוגמה 2.2
חיישן LM35 מחובר להדק A0 של Arduino Uno, והטמפרטורה 37 °C (Vout = 0.37 V).
(א) איזה ערך גולמי מוסר הממיר (החלק השלם)?
(ב) הסקיצה ממירה את הערך הזה למתח ואחר כך לטמפרטורה. מה היא מציגה?
פתרון:
N = Vout·NmaxVref = 0.37 · 10235 = 75.7 → 75
V = 75 · 51023 = 0.367 V , T = 0.367 V0.01 V/°C = 36.7 °C

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

N = 75 , T ≈ 36.7 °C
שאלה 2.3: ה-Uno קרא מ-LM35 את הערך הגולמי N = 154. מהו המתח בהדק ומהי הטמפרטורה?
2021222320212223Ttrue [°C]Tshown [°C]0.49 °C
הקריאה עם LM35 ב-Uno קופצת בצעדים של 0.49 °C
רזולוציה (הפרדה): השינוי הקטן ביותר בגודל הנמדד שמופיע כשינוי בקריאה. בחיישן ספרתי היא נתונה בגיליון הנתונים (ב-DHT22: 0.1 °C; ב-DS18B20 ברזולוציה של 12 סיביות: 0.0625 °C — ערכים טיפוסיים). בחיישן תקבילי קובע אותה בדרך כלל הממיר התקבילי-ספרתי.

מתח הצעד הבודד של ממיר בן n סיביות הוא ΔV, ונמיר אותו ליחידת הגודל הנמדד בחלוקה ברגישות S:

ΔV = Vref2n
Δx = ΔVS
דוגמה 2.3
נחשב את הרזולוציה של LM35:
(א) עם Uno (10 סיביות, 5 V).
(ב) עם ESP32 (12 סיביות, 3.3 V).
פתרון:
ΔV = 5210 = 4.88 mV , ΔT = 4.8810 = 0.49 °C
ΔV = 3.3212 = 0.806 mV , ΔT = 0.80610 = 0.081 °C

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

שאלה 2.4: חיישן שרגישותו 20 mV/°C מחובר ל-Uno. מהי הרזולוציה במעלות?

מאפיינים נוספים בגיליון הנתונים (Other Datasheet Properties)

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

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

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

בחירת חיישן (Choosing a Sensor)

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

  1. מה מודדים ובאיזה תחום? תחום המדידה של החיישן צריך לכסות את התחום שהפרויקט צריך.
  2. מה סוג המוצא? תקבילי, דו-מצבי או ספרתי: הוא קובע לאיזה הדק נחבר את החיישן, ובאיזו פונקציה או ספרייה נקרא אותו.
  3. האם הוא מתאים למתח של הבקר? ה-Uno עובד ב-5 V, וה-ESP32 עובד ב-3.3 V ואינו סובל 5 V בהדקים שלו.
  4. האם הרזולוציה והדיוק מספיקים? משווים אותם למה שהפרויקט דורש.
  5. כל כמה זמן צריך קריאה? יש חיישנים איטיים: DHT22 מוסר קריאה חדשה לכל היותר פעם בשתי שניות.
  6. איפה הוא עובד? במים, באבק, בחום גבוה — ומה המחיר שלו.

דוגמה: מדידת טמפרטורה בחממה בין 0 ל-50 °C בדיוק של ±1 °C, קריאה כל 5 s, עם הבקר ESP32 שפועל במתח 3.3 V. נכתוב את הדרישות בעמודה, ומולן את מה שאומר גיליון הנתונים של כל חיישן מועמד:

מאפייןהדרישהLM35DS18B20DHT22
מוצא וספרייה—תקבילי 10 mV/°C, בלי ספרייהספרתי 1-Wire, הספריות OneWire + DallasTemperatureספרתי בחוט אחד, ספריית DHT
תחום מדידה0…50 °C−55…150 °C−55…125 °C−40…80 °C
דיוק±1 °C±1 °C ב-25 °C±0.5 °C (−10…85 °C)±0.5 °C
רזולוציה0.5 °Cלפי הממיר0.0625 °C0.1 °C
פועל ב-3.3 V?כןלא (מ-4 V)כן (3.0…5.5 V)כן
זמן בין קריאות5 sמיידי (תקבילי)750 ms2 s

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

על איזה לוח?:

לפני שבוחרים חיישן שואלים גם: באיזה לוח נקרא אותו? ההדקים של Uno עובדים ב-5 V, וההדקים של ESP32 ושל רספברי פיי ב-3.3 V ואינם עומדים ב-5 V, ולרספברי פיי אין ממיר תקבילי-ספרתי (פרק 4). הטבלה מסכמת את החיישנים שבספר:

החיישןהמוצאArduino UnoESP32Raspberry Pi
DHT22ספרתיישירותישירות, הזנה 3.3 Vישירות, ספריית פייתון
DS18B20ספרתי (1-Wire)ישירותישירותישירות, 1-Wire מובנה
PIRספרתיישירותישירות, המוצא 3.3 Vישירות, המוצא 3.3 V
לחצן רגעיספרתיישירותישירותישירות
HC-SR04ספרתי (פולס)ישירותמחלק מתח על ECHOמחלק מתח על ECHO
LM35תקביליישירותישירות, הזנה 5 Vדרך ממיר חיצוני
LDRהתנגדות (מחלק)ישירותישירות, מחלק מ-3.3 Vדרך ממיר חיצוני
פוטנציומטרתקביליישירותישירות, מ-3.3 Vדרך ממיר חיצוני
ACS712תקביליישירותמחלק מתח על המוצאממיר חיצוני ומחלק מתח
▶ניסוי חי — טבלת השוואה של חיישניםטבלה שמשווה בין חיישנים לבקרים: מה מודד כל חיישן, סוג האות, ההזנה, והאם אפשר לחבר אותו ישירות ל-ESP32.
⚠
המעבדה אינה זמינה כרגע. החומר בפרק שלם גם בלעדיה — ממשיכים לקרוא, וחוזרים לניסוי מאוחר יותר או פותחים אותו ישירות בקישור שמתחת למסגרת.
https://fahed-lab.com/micro/sensors_guide#cmp
פתיחת המעבדה בדף נפרד ↗ fahed-lab.com/micro/sensors_guide#cmp

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

החוקהנוסחה
פונקציית התמסורת של LM35Vout = 10 mV/°C · T
רוחב התחוםFS = xmax − xmin
מספר הרמות של הממיר והערך הגולמי הגדול ביותר2n , Nmax = 2n − 1
מערך גולמי למתחV = N·VrefNmax
הרזולוציה של הממירΔV = Vref2n
רזולוציה ביחידות הגודל הנמדדΔx = ΔVS

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

עבריתEnglishالعربية
חיישןSensorالحسّاس (المستشعر)
מתמרTransducerمُحوِّل الطاقة
פונקציית תמסורת (אופיין)Transfer functionدالّة النقل
חיישן פעיל · חיישן סבילActive · passive sensorحسّاس فعّال · حسّاس سلبي
מוצא תקבילי · ספרתיAnalog · digital outputمخرج تماثلي · رقمي
מוצא דו-מצבי (בינארי)Binary (switching) outputمخرج ثنائي الحالة
תחום מדידהMeasuring rangeمدى القياس
רוחב התחום (סקאלה מלאה)Span (full scale, FS)عرض المدى (المدى الكامل)
רגישותSensitivityالحساسية
ממיר תקבילי-ספרתיAnalog-to-digital converter (ADC)المحوّل التماثلي-الرقمي
ערך גולמי · מתח ייחוסRaw value · reference voltageالقيمة الخام · جهد المرجع
רזולוציה (הפרדה)Resolutionدقّة التمييز
דיוק · לינאריותAccuracy · linearityالدقّة · الخطّية
זמן תגובה · סחףResponse time · driftزمن الاستجابة · الانجراف
כיול · מכשיר ייחוסCalibration · reference instrumentالمعايرة · جهاز مرجعي

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

1.
המוצא של LM35 הוא 0.285 V. מהי הטמפרטורה?
תשובות: T = 28.5 °C
2.
לחיישן תחום מדידה בין −20 °C ל-120 °C.
(א) חשבו את רוחב התחום.
(ב) הסקיצה קראה ממנו 150 °C. האם אפשר לסמוך על הקריאה?
תשובות: (א) FS = 140 °C. (ב) לא, הערך מחוץ לתחום המדידה
3.
המוצא של חיישן לחץ הוא 1.30 V ב-20 kPa ו-3.70 V ב-80 kPa, ופונקציית התמסורת לינארית.
(א) בכמה משתנה המוצא לכל 1 kPa (הרגישות)?
(ב) מהו המוצא ב-50 kPa?
תשובות: (א) S = 0.04 V/kPa. (ב) V = 2.5 V
4.
לכל ממיר חשבו את מספר הרמות ואת הערך הגולמי הגדול ביותר:
(א) 8 סיביות.
(ב) 10 סיביות.
(ג) 12 סיביות.
תשובות: (א) 256, 255. (ב) 1024, 1023. (ג) 4096, 4095
5.
חיישן הלחץ משאלה 3 מחובר ל-Uno (10 סיביות, 5 V). מהו מתח הצעד הבודד, ומהי הרזולוציה ביחידות kPa?
תשובות: ΔV = 4.88 mV, Δp ≈ 0.122 kPa
6.
ב-Uno אפשר לבחור מתח ייחוס פנימי של 1.1 V (ערך טיפוסי לפי גיליון הנתונים של הבקר). חשבו את הרזולוציה של LM35 ואת הטמפרטורה הגבוהה ביותר שאפשר למדוד.
תשובות: ΔT ≈ 0.107 °C, והטמפרטורה הגבוהה ביותר 110 °C
7.
(א) ה-Uno קרא מ-LM35 את הערך הגולמי N = 51. חשבו את המתח ואת הטמפרטורה.
(ב) ה-ESP32 (12 סיביות, 3.3 V) קרא מחיישן את הערך הגולמי N = 2048. מהו המתח בהדק?
תשובות: (א) V = 0.249 V, T = 24.9 °C. (ב) V = 1.65 V
8.
לכל חיישן כתבו את סוג המוצא, ובאיזו פונקציה או ספרייה קוראים אותו:
(א) HC-SR04.
(ב) PIR.
(ג) DS18B20.
(ד) LDR במחלק מתח.
(ה) מפסק גבול.
תשובות: (א) פולס, pulseIn(). (ב) דו-מצבי, digitalRead(). (ג) ספרתי, הספריות OneWire ו-DallasTemperature. (ד) תקבילי, analogRead(). (ה) דו-מצבי, digitalRead()
9.
הרזולוציה של DS18B20 היא 0.0625 °C והדיוק שלו ±0.5 °C (ערכים טיפוסיים). הוא קרא 23.0625 °C.
(א) האם הטמפרטורה האמיתית היא בדיוק 23.0625 °C?
(ב) בין אילו ערכים היא נמצאת?
תשובות: (א) לא: רזולוציה עדינה אינה דיוק. (ב) בין 22.56 °C ל-23.56 °C
10.
רוצים למדוד טמפרטורת מים במכל בין 10 ל-90 °C בדיוק של ±1 °C עם הבקר ESP32. היעזרו בטבלה שבסעיף 2.5, בחרו חיישן ונמקו.
תשובות: DS18B20 בגשש אטום: התחום והדיוק שלו מתאימים, והוא פועל ב-3.3 V; התחום של DHT22 מגיע רק עד 80 °C, ו-LM35 צריך 4 V
תשובות סופיות לשאלות הפרק
2.1 T = 62 °C
2.2 (א) פעיל, תקבילי (כמה mV). (ב) סביל, תקבילי. (ג) סביל, ספרתי
2.3 V = 0.753 V, T = 75.3 °C
2.4 ΔT ≈ 0.244 °C
נוסחאון הספר: כל נוסחאות הפרק הזה מרוכזות, עם סרטוטיהן וטבלאות הסמלים שלהן, בפרק 15 — נוסחאון הספר.