الفرق بين المراجعتين لصفحة: «Arduino/analog io/analogreadresolution»

من موسوعة حسوب
أنشأ الصفحة ب'الدالة <code>analogWriteResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصة للو...'
 
طلا ملخص تعديل
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
الدالة <code>analogWriteResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصة للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة <code>[[Arduino/analog io/analogwrite|analogWrite()‎]]</code>. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 8 بت (تمثِّل القيم بين 0 و 255) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR.
<noinclude>{{DISPLAYTITLE:الدالة <code>analogReadResolution()‎</code> في  أردوينو}}</noinclude>
 
الدالة <code>analogReadResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، و Zero، و MKR، إذ تُستعمَل لضبط حجم (دقة) القيمة المعادة من الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code>. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 10 بت (تمثِّل القيم بين 0 و 1023) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR.
تملك لوحات أردوينو Due الإمكانيات العتادية التالية:
* 12 رجل مولِّدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت.
* 12 رجل مع محول رقمي تشابهي (DAC، اختصارٌ للعبارة Digital-to-Analog Converter) بدقة 12 بت.
متى ما ضُبطَت الدقة إلى 12 بت، يصبح بإمكانك استعمال الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] مع قيم تتراوح بين 0 و 4095 للاستفادة القصوى من دقة المحول DAC أو لضبط الإشارة PWM دون تدوير القيم (rolling over).
 
تملك لوحات أردوينو Zero الإمكانيات العتادية التالية:
* 10 أرجل مولدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت.
* 1 رجل مع محول رقمي تشابهي (DAC) بدقة 10 بت.
متى ما ضُبطَت الدقة إلى 10 بت، يصبح بإمكانك استعمال الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] مع قيم تتراوح بين 0 و 1023 للاستفادة القصوى من دقة المحول DAC.
 
تملك عائلة لوحات أردوينو MKR الإمكانيات العتادية التالية:
* 4 أرجل مولدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن تغيير الدقة من 8 (الافتراضية) إلى 12 بت.
* 1 رجل مع محول رقمي تشابهي (DAC) بدقة 10 بت.
متى ما ضُبطَت الدقة إلى 12 بت، يصبح بإمكانك استعمال الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] مع قيم تتراوح بين 0 و 4095 لإشارات PWM. اضبط الدقة إلى 10 بت على الأرجل DAC لاستغلال دقة المحول DAC للقيم 1024 بشكل كامل.


تملك لوحات أردوينو التي من عائلة Due، و Zero، و MKR إمكانية تحويل الإشارات التشابهية إلى رقمية عبر محول تشابهي رقمي (ADC، اختصارٌ للعبارة Analog-to-Digital Converter) بدقة 12 بت. إن غُيِّرَت الدقة إلى 12 بت، فسيؤدي ذلك إلى إعادة قيمٍ من الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code> تقع بين 0 و 4095.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="arduino">
<syntaxhighlight lang="arduino">
analogWriteResolution(bits)
analogReadResolution(bits)
</syntaxhighlight>
</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>bits</code>===
===<code>bits</code>===
عددٌ صحيحٌ يحدِّد دقة القيم المستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. إن اخترت دقة أعلى أو أدنى من المجال الذي يحدده عتاد اللوحة لديك، فإمَّا ستُقتطَع القيمة المستعملة مع الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] في حال كانت أعلى من القيمة القصوى أو ستُملأ بأصفار في حال كانت صغيرة جدًا. اقرأ قسم "الملاحظات والتحذيرات" بعناية لمزيد من التوضيح حول هذا الأمر.
عددٌ صحيحٌ يحدِّد دقة القيم المعادة من الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code> بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. يمكنك ضبط الدقة إلى قيمة أعلى من 12 ولكن ذلك سيؤدي هذا إلى تقريب القيم المعادة من الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code>. اقرأ قسم "الملاحظات والتحذيرات" في الأسفل بعناية لمزيد من التوضيح حول هذا الأمر.
==القيم المعادة==
==القيم المعادة==
لا يعاد أي شيء.
لا يعاد أي شيء.
==أمثلة==
==أمثلة==
مثالٌ على استعمال الدالة <code>analogWriteResolution()‎</code>:<syntaxhighlight lang="arduino">
مثالٌ يوضح كيفية استعمال المحول التشابهي الرقمي (ADC) بقيم مختلفة للدقة:<syntaxhighlight lang="arduino">
void setup(){
void setup() {
   // بدء واجهة التخاطب التسلسلية
   // تهيئة وبدء واجهة التخاطب التسلسلية
   Serial.begin(9600);
   Serial.begin(9600);
  // تهيئة الأرجل 11 و 12 و 13 إلى أرجل خرج
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}
}


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


   // PWM استعمال الدقة الافتراضية من أجل إشارات
   // A0 تغيير الدقة إلى 12 بت وإعادة قراءة القيم من الرجل
   analogWriteResolution(8);
   analogReadResolution(12);
  analogWrite(11, map(sensorVal, 0, 1023, 0 ,255));
   Serial.print(", 12-bit : ");
   Serial.print(" , 8-bit PWM value : ");
   Serial.print(analogRead(A0));
   Serial.print(map(sensorVal, 0, 1023, 0 ,255));


   // إلى 12 بت PWM تغيير دقة
   // A0 تغيير الدقة إلى  16 بت والقراءة من الرجل
  // Due الدقة 12 بت الكاملة مدعومة فقط في لوحات
   analogReadResolution(16);
   analogWriteResolution(12);
   Serial.print(", 16-bit : ");
  analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
   Serial.print(analogRead(A0));
   Serial.print(" , 12-bit PWM value : ");
   Serial.print(map(sensorVal, 0, 1023, 0, 4095));


   // إلى 4 بت PWM تغيير دقة
   // A0 تغيير الدقة إلى 8 بت والقراءة من الرجل
   analogWriteResolution(4);
   analogReadResolution(8);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
   Serial.print(", 8-bit : ");
   Serial.print(", 4-bit PWM value : ");
   Serial.println(analogRead(A0));
   Serial.println(map(sensorVal, 0, 1023, 0, 15));


   delay(5);
  // تأخير بسيط من أجل واجهة التخاطب التسلسلية
}
   delay(100);
</syntaxhighlight>
</syntaxhighlight>
==ملاحظات وتحذيرات==
==ملاحظات وتحذيرات==
إن ضُبٍطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أكبر من القيمة القصوى التي توفرها لوحتك، فستضبط أردوينو الدقة إلى القيمة القصوى وتتجاهل القيمة الإضافية. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(16)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى استعمال البتات 12 الأولى للقيم الممرَّرة إلى الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] وستُهمَل البتات الأربعة الأخيرة.
إن ضُبٍطَت قيمة الدقة عبر الدالة <code>analogReadResolution()‎</code> إلى قيمة أكبر من القيمة القصوى التي توفرها لوحتك، فستضبط أردوينو الدقة إلى القيمة القصوى تلقائيًّا وتضع أصفار مكان البتات الإضافية. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogReadResolution(16)‎</code> في لوحة أردوينو Due إلى الحصول على قيمة تقريبية بحجم 16 بت، إذ أول 12 بت فيها هي القيمة الحقيقية المقروءة من المحول التشابهي الرقمي (ADC) وستُملأ البتات الأربعة الأخيرة بأصفار.
 
إن ضُبطَت قيمة الدقة عبر الدالة <code>analogReadResolution()‎</code> إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستُهمَل البتات الزائدة الأقل أهمية المقروءة من المحول التشابهي الرقمي.
 
يسمح لك ضبط الدقة إلى 16 بت (أو أية قيمة أكبر من القيمة الفعلية التي يوفرها العتاد) بكتابة شيفرة تتعامل تلقائيًّا مع أجهزة عتادية مختلفة بدقة تحويل مرتفعة عبر إضافة هذه الأجهزة أو اللوحات إلى مشروعك في المستقبل دون تعديل الشيفرة.


إن ضُبطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستحل أصفارٌ مكان البتات الناقصة لملء الحجم الذي يتطلبه العتاد. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(8)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى إضافة 4 بتات صفرية إلى قيمةٍ بحجم 8 بت مستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] للحصول على قيمة بحجم 12 بت كما هو مطلوب.
*
==انظر أيضًا==
==انظر أيضًا==
*
* الدالة <code>[[Arduino/analog io/analogwriteresolution|analogWriteResolution()‎]]</code>: هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة <code>[[Arduino/analog io/analogwrite|analogWrite()‎]]</code>.
* الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code>: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
* درس تعليمي يشرح أرجل الدخل التشابهية.
 
==مصادر==
==مصادر==
*[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/ صفحة الدالة analogWriteResolution()‎ في توثيق أردوينو الرسمي.]
*[https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/ صفحة الدالة analogReadResolution()‎ في توثيق أردوينو الرسمي.]
[[تصنيف: Arduino]]
[[تصنيف: Arduino Function]]
[[تصنيف: Arduino I/O]]
[[تصنيف: Arduino Analog I/O]]

المراجعة الحالية بتاريخ 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()‎: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
  • درس تعليمي يشرح أرجل الدخل التشابهية.

مصادر