קריאה אנלוגית ב-ESP32
תוכן עניינים
מדריך מקיף – מהבסיס ועד היישום המעשי
בעולם האלקטרוניקה, חיישנים רבים מוציאים מתח אנלוגי משתנה – כלומר ערך שיכול להיות כל מספר בין 0 לבין 3.3 וולט. כדי לקרוא ערכים אלו, ה-ESP32 מצויד ב-ADC (ממיר אנלוגי-דיגיטלי) מובנה. במדריך זה נלמד מה זה קריאה אנלוגית, כיצד היא עובדת, ואיך מבצעים אותה בפועל.
מהי קריאה אנלוגית?
קריאה אנלוגית היא קריאה של ערך משתנה – לא רק 0 או 1, אלא כל ערך שבין 0 לבין 3.3 וולט. בניגוד לקריאה דיגיטלית שיודעת רק לומר "כן" או "לא", הקריאה האנלוגית יודעת לומר בדיוק כמה.
כשאתם מסובבים ידית של וולום, או מחזיקים חיישן טמפרטורה – אלו כולם אות אנלוגי. הם לא סתם "דלוק" או "כבוי" – הם נותנים ערך מדויק.
קריאה אנלוגית לעומת דיגיטלית
חיישן אנלוגי
ערכים אפשריים רבים – מ-0V ועד 3.3V
חיישן דיגיטלי
רק שתי אפשרויות: 0 (כבוי) או 1 (דלוק)
חיישן אנלוגי מוציא מתח חשמלי משתנה שמשתנה לפי מה שהוא מודד – בין 0V ל-3.3V. חיישן דיגיטלי לעומתו אומר רק "כן" או "לא".
ה-ESP32 יכול לקרוא גם חיישנים דיגיטליים וגם חיישנים אנלוגיים. לקריאה אנלוגית הוא משתמש ב-ADC המובנה בו.
כיצד ה-ESP32 קורא אנלוגי?
ה-ESP32 קורא את המתח שמגיע לרגל האנלוגית ומעביר אותו דרך ADC (Analog to Digital Converter) – רכיב פנימי שממיר את המתח האנלוגי למספר דיגיטלי.
שים לב! ה-ESP32 לא מחזיר לנו ישר את המתח בוולטים – הוא מחזיר מספר בין 0 ל-4095. מדוע 4095? כי ה-ADC הוא בעל רזולוציה של 12 סיביות (2¹²=4096 ערכים).
| מתח בכניסה | ערך דיגיטלי |
|---|---|
| 0V | 0 |
| ~1.65V | 2048 |
| 3.3V | 4095 |
הפקודה analogRead
כדי לקרוא קריאה אנלוגית ב-ESP32, משתמשים בפקודה analogRead. הפקודה מקבלת כפרמטר את מספר הרגל שרוצים לקרוא ממנה.
int analogValue = analogRead(34);
// קורא את המתח מרגל 34
// מחזיר מספר בין 0 ל-4095ב-ESP32 הרגליים שמתאימות לקריאה אנלוגית: GPIO 34, 35, 36, 39 – אלו רגליים לקריאה בלבד (input only).
כיצד מתבצעת הקריאה האנלוגית?
חיישן אנלוגי מוציא מתח חשמלי משתנה שמשתנה לפי מה שהוא מודד
המתח מגיע לרגל האנלוגית של ה-ESP32 (לדוגמה GPIO34)
ה-ADC המובנה ממיר את המתח האנלוגי למספר דיגיטלי בין 0 ל-4095
הפקודה analogRead מחזירה לנו את המספר הזה בתוכנית
אנחנו מחליטים לפי המספר מה מצב החיישן ומה לעשות
כיצד ממירים קריאה למתח?
אם רוצים לדעת מה המתח האמיתי בוולטים, משתמשים בנוסחה:
דוגמה: אם הקריאה היא 2048, אז: (2048 ÷ 4095) × 3.3 ≈ 1.65 וולט
מה עושים עם הערך שחישבנו?
אחרי שמרנו את הקריאה האנלוגית למתח, אפשר להשתמש בו כדי להבין את מצב החיישן:
מתח גבוה = הרבה אור
מתח גבוה = ריכוז גבוה
מתח גבוה = קרינה חזקה
המתח משתנה לפי לחות
📋 סיכום – מה שלמדנו
כל מה שצריך לזכור על קריאה אנלוגית ב-ESP32:
קריאה אנלוגית היא קריאה של ערך משתנה, ולא רק 0 או 1
החיישן מוציא מתח חשמלי משתנה לפי מה שהוא מודד
ה-ESP32 קורא בעזרת הפקודה analogRead
ה-ADC ממיר למספר בין 0 ל-4095
אפשר להמיר חזרה למתח בעזרת הנוסחה
לפי הערך קובעים את מצב החיישן
אלקטרוניקה ומחשבים – יצחק, ברקת ושוהם כהן אתר מגמת אלקטרוניקה ומחשבים