- עמוד זה הוא חלק מהמדריך לפונקציות ארדואינו -
הפונקציה analogRead(pin) קוראת מתח אנלוגי (כלומר, על סקאלה רצופה) ממקור חיצוני, וממפה אותו על סקאלת מספרים שלמים בטווח 0-1023 (כולל).
פרמטרים
pin הוא שם פין הקלט האנלוגי בארדואינו (A0, A1 וכו') אליו מחובר המתח החיצוני למדידה. ניתן לשלוח גם מספר שמייצג ישירות את ערוץ ה-ADC הרלוונטי – מקביל למעשה לספרה שאחרי ה-A בסימון שמות פיני הקלט האנלוגיים.
ערך חוזר
מספר שלם מטיפוס int, שמייצג את המתח שנמדד בפועל בפין הרלוונטי, חלקי ערך המתח המרבי, מומר לסקאלה של מספרים שלמים בטווח 0-1023 (כולל).
לדוגמה, אם המתח המרבי הוא 5V, הערך החוזר עבור 0V בפין הנמדד יהיה 0, עבור 2V הוא יהיה 409, ועבור 5V הערך החוזר יהיה 1023.
הסבר קצר: פיני קלט אנלוגיים
למרות הסימון המיוחד וההפרדה הפיזית בלוחות ארדואינו רבים, פיני הקלט האנלוגיים (A0, A1 וכו') הם למעשה פיני קלט/פלט רגילים לכל דבר. הם נקראים “אנלוגיים” מכיוון שמודול ה-ADC הפנימי במיקרו-בקר, שתפקידו להמיר מתחים אנלוגיים למספרים, מסוגל להתממשק לפינים אלה כמקורות מתח.
חשוב: כדי שהמודול יוכל לקרוא את המתחים החיצוניים, פין הקלט האנלוגי הרלוונטי חייב להיות מוגדר כפין קלט (INPUT – ראו בפונקציה pinMode).
דוגמאות
unsigned int vReading; vReading = analogRead(A1);
הערות
- הפונקציה analogRead משמשת לרוב לקריאת מתחים מפוטנציומטרים, חיישנים בעלי פלט אנלוגי (רצוף) וסוללות.
- הערך המוחזר מהפונקציה analogRead הוא בן 10 ביטים, כלומר בטווח 0-1023 (כולל). מכאן שהנוסחה הנכונה לחישוב המתח מתוך הערך המוחזר היא כפי שמופיע כאן למטה (vREF הוא הערך העליון של טווח המתחים הנמדד – כברירת מחדל זהו מתח ההפעלה של לוח הארדואינו [לרוב 5V], וניתן לבחור ערכים אחרים באמצעות הפונקציה analogReference):
vActual = (vReading / 1023) * vREF;
- אם הפין הנמדד “צף”, כלומר אינו מחובר למקור מתח כלשהו, הערך החוזר של analogRead יכול להיות כל מספר בטווח.
- ברוב לוחות הארדואינו, פעולת מדידה נמשכת כ-100 מיליוניות השניה, והקוד הראשי אינו יכול להמשיך עד לסיום המדידה.
- המדידה אינה מדויקת לחלוטין. מנגנון המדידה עשוי לסטות בכרבע אחוז לכאן או לכאן, ולזאת יש להוסיף אי-דיוקים כלשהם בגבול המתח העליון שהוגדר (ראו analogReference).
- לא מתבצעת בדיקה של תקינות הקלט עבור הפרמטר pin. במקרה של ערך לא חוקי לא יקרה נזק, אך הערך החוזר יהיה חסר משמעות.
- יש להיזהר בקריאה ממספר פיני קלט אנלוגי במהירות, בזה אחר זה: במקרים מסוימים (מקורות מתח בעלי עכבה גבוהה), המתח ממדידה קודמת עשוי להמשיך ולהשפיע על המדידות הבאות.