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

من موسوعة حسوب
< Arduino‏ | analog io
مراجعة 07:18، 17 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

الدالة analogReadResolution()‎ هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، و Zero، و MKR، إذ تُستعمَل لضبط حجم (دقة) القيمة المعادة من الدالة analogRead()‎. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 10 بت (تمثِّل القيم بين 0 و 1023) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR.

تملك لوحات أردوينو التي من عائلة Due، و Zero، و MKR إمكانية تحويل الإشارات التشابهية إلى رقمية عبر محول تشابهي رقمي (ADC، اختصارٌ للعبارة Analog-to-Digital Converter) بدقة 12 بت. إن غُيِّرَت الدقة إلى 12 بت، فسيؤدي ذلك إلى إعادة قيمٍ من الدالة analogRead()‎ تقع بين 0 و 4095.

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

analogReadResolution(bits)

المعاملات

bits

عددٌ صحيحٌ يحدِّد دقة القيم المعادة من الدالة analogRead()‎ بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. يمكنك ضبط الدقة إلى قيمة أعلى من 12 ولكن ذلك سيؤدي هذا إلى تقريب القيم المعادة من الدالة analogRead()‎. اقرأ قسم "الملاحظات والتحذيرات" في الأسفل بعناية لمزيد من التوضيح حول هذا الأمر.

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

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

أمثلة

مثالٌ يوضح كيفية استعمال المحول التشابهي الرقمي (ADC) بقيم مختلفة للدقة:

void setup() {
  // تهيئة وبدء واجهة التخاطب التسلسلية
  Serial.begin(9600);
}

void loop() {
  // بالدقة الافتراضية (10 A0 قراءة القيم من الرجل
  //  بت) وإرسالها عبر الاتصال التسلسلي
  analogReadResolution(10);
  Serial.print("ADC 10-bit (default) : ");
  Serial.print(analogRead(A0));

  // A0 تغيير الدقة إلى 12 بت وإعادة قراءة القيم من الرجل
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));

  // A0 تغيير الدقة إلى  16 بت والقراءة من الرجل
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));

  // A0 تغيير الدقة إلى  8 بت والقراءة من الرجل
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));

  // تأخير بسيط من أجل واجهة التخاطب التسلسلية
  delay(100);

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

إن ضُبٍطَت قيمة الدقة عبر الدالة analogReadResolution()‎ إلى قيمة أكبر من القيمة القصوى التي توفرها لوحتك، فستضبط أردوينو الدقة إلى القيمة القصوى تلقائيًّا وتضع أصفار مكان البتات الإضافية. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل analogReadResolution(16)‎ في لوحة أردوينو Due إلى الحصول على قيمة تقريبية بحجم 16 بت، إذ أول 12 بت فيها هي القيمة الحقيقية المقروءة من المحول التشابهي الرقمي (ADC) وستُملأ البتات الأربعة الأخيرة بأصفار.

إن ضُبطَت قيمة الدقة عبر الدالة analogReadResolution()‎ إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستُهمَل البتات الزائدة الأقل أهمية المقروءة من المحول التشابهي الرقمي.

يسمح لك ضبط الدقة إلى 16 بت (أو أية قيمة أكبر من القيمة الفعلية التي يوفرها العتاد) بكتابة شيفرة تتعامل تلقائيًّا مع أجهزة عتادية مختلفة بدقة تحويل مرتفعة عبر إضافة هذه الأجهزة أو اللوحات إلى مشروعك في المستقبل دون تعديل الشيفرة.

انظر أيضًا

  • الدالة analogWriteResolution()‎: هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة analogWrite()‎.
  • الدالة analogRead()‎: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
  • درس تعليمي يشرح أرجل الدخل التشابهية.

مصادر