digitalRead – הסבר ופרטים

- עמוד זה הוא חלק מהמדריך לפונקציות ארדואינו -

הפונקציה digitalRead(pin) מחזירה ערך שמייצג את המתח החשמלי בפין הקלט/פלט הרלוונטי. ערך זה יכול להיות אחת משתי אפשרויות בלבד: LOW (נמוך) או HIGH (גבוה).

פרמטרים

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

ערך חוזר

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

  • 0 (הקבוע LOW) אם המתח בפין שווה ל-GND או קרוב אליו, או
  • 1 (הקבוע HIGH) אם המתח בפין שווה למתח ההפעלה של לוח הארדואינו (בדרך כלל 5V) או קרוב אליו

דוגמאות

unsigned int v1, v2;
v1 = digitalRead(10);
v2 = digitalRead(A3);

הערות

  • אסור לחבר לפינים מתחים נמוכים מ-GND או גבוהים ממתח ההפעלה של הארדואינו (בדרך כלל 5V). הדבר עלול להזיק למיקרו-בקר.
  • אם מתח ההפעלה של הארדואינו הוא 5V, המתח המינימלי שייחשב HIGH הוא כ-2.6V, והמתח המקסימלי שייחשב כ-LOW הוא כ-2.1V. אם המתח הוא בין לבין, הערך החוזר מהפונקציה digitalRead יישאר כפי שהיה קודם.
  • אם נשלחים לפונקציה ערכי pin לא חוקיים, מוחזר הערך LOW.
  • אם הפין הוגדר קודם לכן לפלט “אנלוגי” (באמצעות הפקודה analogWrite), השימוש ב-digitalRead יגרום להפסקת הפלט הזה.
  • אם הפין הוגדר כפין פלט (באמצעות הפונקציה pinMode), הפונקציה digitalRead תחזיר ערך בהתאם למתח שאותו פין “מוציא”.
  • בלוחות ארדואינו שיש להם פינים A6 ו-A7 (ולא מעבר לזה), שני הפינים האלה לא יכולים לשמש לקלט או פלט דיגיטליים.

קישורים רלוונטיים

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה