facebook pixel מדריך: פירוט שפת תכנות - לכרטיסים מתקדמים - ()analogReadResolution - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

פירוט שפת תכנות - לכרטיסים מתקדמים - ()analogReadResolution


2024-11-23 15:22:27
פונקציית ()analogReadResolution היא הרחבה לממשק של קווים אנלוגיים ונועדה לכרטיסי Arduino Due, Arduino Zero או כרטיסים מתקדמים אחרים עם ממיר ADC בעל רזולוציה גבוהה.

הפונקציה מגדירה את גודל הערך בביטים (bits) שיוחזר ע"י פונקציה ()analogRead. ברירת המחדל של ההגדרה היא 10bit (הערכים שמוחזרים הם בין 0 ל-1023) לצורך התאימות עם כרטיסי Arduino המבוססים על מיקרובקרים ישנים ממשפחת AVR.

לכרטיסי Due ו-Zero יש ממירי ADC (אנלוגי לדיגיטלי) שמסוגלים לספק רזולוציית מדידה של 12bit ובעזרת קריאה לפונקציית ()analogReadResolution אפשר לקבל קריאות שמשתמשות בכל ה-12bit (ערכים מ-0 עד 4095).

תחביר

קוד: בחר הכל
analogReadResolution(bits);

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

פונקציה זו לא מחזירה ערכים.

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

לדוגמה, אם לכרטיסי Due או Zero תשתמשו ב-(16)analogReadResolution, הערך המוחזר מ-()analogRead יכלול 12 סיביות הראשונות עם מידע אמיתי מממיר ADC ו-4 סיביות האחרונות ימולאו באפסים.

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

השימוש ברזולוציה של 16bit (או כל רזולוציה גבוהה יותר ממה שהכרטיס שלכם תומך) מאפשרת לכם לכתוב תוכניות שיוכלו לטפל בכרטיסים עתידיים שיכללו ממיר ADC מתקדם יותר מבלי שתצטרכו לשנות שורת קוד אחת בעתיד.

דוגמה

קוד: בחר הכל
void setup() {
  // open a serial connection
  Serial.begin(9600);
}

void loop() {
  // read the input on A0 at default resolution (10 bits)
  // and send it out the serial connection
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // change the resolution to 12 bits and read A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 16 bits and read A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // change the resolution to 8 bits and read A0
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // a little delay to not hog serial monitor
  delay(100);
}


ראו גם:

()analogRead
מדריך: תיאור של הקווים האנלוגיים - TODO

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של ()analogReadResolution לפי רישיון Creative Commons Attribution-ShareAlike 3.0.