الدالة analogReference()‎ في أردوينو

من موسوعة حسوب
مراجعة 12:21، 6 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة مثال.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تهيِّئ الدالة analogReference()‎ قيمة الجهد المرجعي (reference voltage) المستعمل من أجل الدخل التشابهي (أي القيمة المستعملة بوصفها أعلى قيمة ضمن مجال القيم المدخلة).

البنية العامة

analogReference(type)

المعاملات

type

نوع الجهد المرجعي المراد استعماله. الخيارات المتاحة التي يمكن استعمالها مع هذا المعامل هي:

  • في لوحات أردوينو التي تعتمد على متحكمات AVR (مثل لوحات Uno، و Mega، وغيرها)، الخيارات المتوافرة هي:
    • DEFAULT: الجهد المرجعي الافتراضي للدخل التشابهي وهو 5V (في اللوحات ذات الجهد 5V) أو 3.3V (في اللوحات ذات الجهد 3.3V).
    • INTERNAL: جهد مرجعي داخلي (built-in reference) وهو 1.1V في المتحكمات ATmega168 و ATmega328P أو 2.56V في المتحكمات ATmega8 (هذا الخيار غير متاح في لوحات أردوينو Mega).
    • INTERNAL1V1: جهد مرجعي داخلي يساوي 1.1V (في لوحات أردوينو Mega فقط).
    • INTERNAL2V56: جهد مرجعي داخلي يساوي 2.56V (في لوحات أردوينو Mega فقط).
    • EXTERNAL: الجهد المرجعي هو الجهد المطبق على الرجل AREF، ويجب ألا يزيد عن 5V.
  • في لوحات أردوينو التي تعتمد على متحكمات SAMD (مثل لوحات Zero وغيرها)، الخيارات المتوافرة هي:
    • AR_DEFAULT: الجهد المرجعي الافتراضي للدخل التشابهي وهو 3.3V.
    • AR_INTERNAL: جهد مرجعي داخلي يساوي 2.23V.
    • AR_INTERNAL1V0: جهد مرجعي داخلي يساوي 1.0V.
    • AR_INTERNAL1V65: جهد مرجعي داخلي يساوي 1.65V.
    • AR_INTERNAL2V23: جهد مرجعي داخلي يساوي 2.23V.
    • AR_EXTERNAL: الجهد المرجعي هو الجهد المطبق على الرجل AREF.
  • في لوحات أردوينو التي تعتمد على متحكمات SAM (مثل لوحات Due)، الخيارات المتوافرة هي:
    • AR_DEFAULT: الجهد المرجعي الافتراضي للدخل التشابهي وهو 3.3V. هذا الخيار هو الخيار الوحيد المدعوم في لوحات أردوينو Due.

القيم المعادة

لا يعاد أي شيء.

أمثلة

مثال على استعمال الدالة analogReference()‎ من أجل استخدام جهد مرجعي خارجي بدلًا من الاعتماد على الجهد المرجعي الداخلي:

int analogPin = 3;     // وصلت الرجل الوسطى لمقاومة متغيرة مع الرجل 3 التشابهية ووصلت
                       //  إحدى الرجلين الخارجيتين مع الأرضي والأخرى مع الجهد 5 فولط
int val = 0;           // متغير لتخزين القيمة المقروءة

void setup()
{
  analogReference(EXTERNAL);       // بمقدار 5 فولط AREF وصل جهد تغذية خارجي بالرجل 
  Serial.begin(9600);              //  ضبط واجهة التخاطب التسلسلية
}

void loop()
{
  val = analogRead(analogPin);     // قراءة قيمة جهد المقاومة المتغيرة
  Serial.println(val);             // إطهار القيمة المقروءة
}

ملاحظات وتحذيرات

بعد تغيير الجهد التشابهي المرجعي، قد تكون بضعة القراءات الأولى من الدالة analogRead()‎ غير دقيقة.

لا تستعمل أي جهد أقل من 0V وأكبر من 5V مع الجهد المرجعي الخارجي المطبق على الرجل AREF. إن كنت تستعمل مرجعًا خارجيًّا مطبَّقًا على الرجل AREF، فيجب ضبط الجهد المرجعي إلى EXTERNAL (أو مايقابلها في لوحات أخرى) عبر الدالة analogReference()‎ قبل استدعاء analogRead()‎. إن لم تفعل ذلك، سيحدث تماسٌ بين الجهد المرجعي الفعَّال (المولد داخليًّا) والجهد المطبَّق على الرجل AREF مما قد يؤدي إلى تضرر المتحكم في لوحتك.

بدلًا من ذلك، يمكنك وصل الجهد المرجعي الخارجي المطبق على الرجل AREF عبر مقاومة 5K، إذ يسمح لك ذلك بالتبديل بين الجهد المرجعي الداخلي والخارجي. انتبه إلى هذه المقاومة ستعدِّل الجهد الذي يراد استعماله كجهد مرجعي خارجي لأنَّه يوجد مقاومة 32K داخلية موصولة بالرجل AREF. تسلك هاتان المقاومتان سلوك مقسم جهدٍ، لذا إن طُبِّق مثلًا جهد بقيمة 2.5V عبر مقاومة 5K، فستكون قيمته الفعلية المطبقة على الرجل AREF هي 2.5 * 32 / (32 + 5) =~ 2.2V.

انظر أيضًا

  • الدالة analogRead()‎: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
  • الدالة analogWrite()‎: تكتب قيمةً تشابهيةً (إشارة عبر معدل عرض النبضة [PWM]) على رجل محدَّدة.
  • درس تعليمي يشرح أرجل الدخل التشابهية.

مصادر