الفرق بين المراجعتين ل"Arduino/analog io/analogwriteresolution"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'الدالة <code>analogWriteResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصة للو...')
 
سطر 1: سطر 1:
الدالة <code>analogWriteResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصة للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة <code>[[Arduino/analog io/analogwrite|analogWrite()‎]]</code>. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 8 بت (تمثِّل القيم بين 0 و 255) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR.
+
<noinclude>{{DISPLAYTITLE:الدالة <code>analogWriteResolution()‎</code> في  أردوينو}}</noinclude>
 +
الدالة <code>analogWriteResolution()‎</code> هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، إذ تُستعمَل لضبط دقة الدالة <code>[[Arduino/analog io/analogwrite|analogWrite()‎]]</code>. يمكن استدعاء هذه الدالة لضبط الدقة إلى القيمة الافتراضية التي هي 8 بت (تمثِّل القيم بين 0 و 255) من أجل التوافقية الرجوعية مع اللوحات التي تعتمد على متحكمات AVR.
  
 
تملك لوحات أردوينو Due الإمكانيات العتادية التالية:
 
تملك لوحات أردوينو Due الإمكانيات العتادية التالية:
سطر 21: سطر 22:
 
==المعاملات==
 
==المعاملات==
 
===<code>bits</code>===
 
===<code>bits</code>===
عددٌ صحيحٌ يحدِّد دقة القيم المستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. إن اخترت دقة أعلى أو أدنى من المجال الذي يحدده عتاد اللوحة لديك، فإمَّا ستُقتطَع القيمة المستعملة مع الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] في حال كانت أعلى من القيمة القصوى أو ستُملأ بأصفار في حال كانت صغيرة جدًا. اقرأ قسم "الملاحظات والتحذيرات" بعناية لمزيد من التوضيح حول هذا الأمر.
+
عددٌ صحيحٌ يحدِّد دقة القيم المستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. إن اخترت دقة أعلى أو أدنى من المجال الذي يحدده عتاد اللوحة لديك، فإمَّا ستُقتطَع القيمة المستعملة مع الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] في حال كانت أعلى من القيمة القصوى أو ستُملأ بأصفار في حال كانت صغيرة جدًا. اقرأ قسم "الملاحظات والتحذيرات" في الأسفل بعناية لمزيد من التوضيح حول هذا الأمر.
 
==القيم المعادة==
 
==القيم المعادة==
 
لا يعاد أي شيء.
 
لا يعاد أي شيء.
 
==أمثلة==
 
==أمثلة==
مثالٌ على استعمال الدالة <code>analogWriteResolution()‎</code>:<syntaxhighlight lang="arduino">
+
مثالٌ على استعمال الدالة <code>analogWriteResolution()‎</code> مع قيم مختلفة للدقة:<syntaxhighlight lang="arduino">
 
void setup(){
 
void setup(){
 
   // بدء واجهة التخاطب التسلسلية
 
   // بدء واجهة التخاطب التسلسلية
سطر 65: سطر 66:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==ملاحظات وتحذيرات==
 
==ملاحظات وتحذيرات==
إن ضُبٍطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أكبر من القيمة القصوى التي توفرها لوحتك، فستضبط أردوينو الدقة إلى القيمة القصوى وتتجاهل القيمة الإضافية. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(16)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى استعمال البتات 12 الأولى للقيم الممرَّرة إلى الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] وستُهمَل البتات الأربعة الأخيرة.
+
إن ضُبٍطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أكبر من القيمة القصوى التي توفرها لوحتك، فستضبط أردوينو الدقة إلى القيمة القصوى وتتجاهل القيمة الإضافية. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(16)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى استعمال البتات 12 الأولى للقيم الممرَّرة إلى الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] وإهمال البتات الأربعة الأخيرة.
  
 
إن ضُبطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستحل أصفارٌ مكان البتات الناقصة لملء الحجم الذي يتطلبه العتاد. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(8)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى إضافة 4 بتات صفرية إلى قيمةٍ بحجم 8 بت مستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] للحصول على قيمة بحجم 12 بت كما هو مطلوب.
 
إن ضُبطَت قيمة الدقة عبر الدالة <code>analogWriteResolution()‎</code> إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستحل أصفارٌ مكان البتات الناقصة لملء الحجم الذي يتطلبه العتاد. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل <code>analogWriteResolution(8)‎</code> في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى إضافة 4 بتات صفرية إلى قيمةٍ بحجم 8 بت مستعملة في الدالة [[Arduino/analog io/analogwrite|<code>analogWrite()‎</code>]] للحصول على قيمة بحجم 12 بت كما هو مطلوب.
 
*
 
*
 
==انظر أيضًا==
 
==انظر أيضًا==
 +
* الدالة <code>[[Arduino/analog io/analogreadresolution|analogReadResolution()‎]]</code>: هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، و Zero، و MKR، إذ تُستعمَل لضبط حجم (دقة) القيمة المعادة من الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code>.
 +
* الدالة <code>[[Arduino/analog io/analogwrite|analogWrite()‎]]</code>: تكتب قيمةً تشابهيةً (إشارة عبر معدل عرض النبضة [PWM]) على رجل محدَّدة.
 +
* الدالة <code>[[Arduino/analog io/analogread|analogRead()‎]]</code>: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
 +
* الدالة <code>map()‎</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/analogwriteresolution/ صفحة الدالة analogWriteResolution()‎ في توثيق أردوينو الرسمي.]
 +
[[تصنيف: Arduino]]
 +
[[تصنيف: Arduino Function]]
 +
[[تصنيف: Arduino Analog I/O]]

مراجعة 06:43، 17 أكتوبر 2018

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

تملك لوحات أردوينو Due الإمكانيات العتادية التالية:

  • 12 رجل مولِّدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت.
  • 12 رجل مع محول رقمي تشابهي (DAC، اختصارٌ للعبارة Digital-to-Analog Converter) بدقة 12 بت.

متى ما ضُبطَت الدقة إلى 12 بت، يصبح بإمكانك استعمال الدالة analogWrite()‎ مع قيم تتراوح بين 0 و 4095 للاستفادة القصوى من دقة المحول DAC أو لضبط الإشارة PWM دون تدوير القيم (rolling over).

تملك لوحات أردوينو Zero الإمكانيات العتادية التالية:

  • 10 أرجل مولدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن زيادة الدقة لتصل إلى 12 بت.
  • 1 رجل مع محول رقمي تشابهي (DAC) بدقة 10 بت.

متى ما ضُبطَت الدقة إلى 10 بت، يصبح بإمكانك استعمال الدالة analogWrite()‎ مع قيم تتراوح بين 0 و 1023 للاستفادة القصوى من دقة المحول DAC.

تملك عائلة لوحات أردوينو MKR الإمكانيات العتادية التالية:

  • 4 أرجل مولدة لإشارات PWM بدقة 8 بت افتراضية -مثل اللوحات التي تعتمد على متحكمات AVR-. يمكن تغيير الدقة من 8 (الافتراضية) إلى 12 بت.
  • 1 رجل مع محول رقمي تشابهي (DAC) بدقة 10 بت.

متى ما ضُبطَت الدقة إلى 12 بت، يصبح بإمكانك استعمال الدالة analogWrite()‎ مع قيم تتراوح بين 0 و 4095 لإشارات PWM. اضبط الدقة إلى 10 بت على الأرجل DAC لاستغلال دقة المحول DAC للقيم 1024 بشكل كامل.

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

analogWriteResolution(bits)

المعاملات

bits

عددٌ صحيحٌ يحدِّد دقة القيم المستعملة في الدالة analogWrite()‎ بالبت. يمكن أن تتراوح قيمة هذا المعامل بين 1 و 32. إن اخترت دقة أعلى أو أدنى من المجال الذي يحدده عتاد اللوحة لديك، فإمَّا ستُقتطَع القيمة المستعملة مع الدالة analogWrite()‎ في حال كانت أعلى من القيمة القصوى أو ستُملأ بأصفار في حال كانت صغيرة جدًا. اقرأ قسم "الملاحظات والتحذيرات" في الأسفل بعناية لمزيد من التوضيح حول هذا الأمر.

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

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

أمثلة

مثالٌ على استعمال الدالة analogWriteResolution()‎ مع قيم مختلفة للدقة:

void setup(){
  // بدء واجهة التخاطب التسلسلية
  Serial.begin(9600);
  // تهيئة الأرجل 11 و 12 و 13 إلى أرجل خرج 
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

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

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

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

  // إلى 4 بت PWM تغيير دقة
  analogWriteResolution(4);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
  Serial.print(", 4-bit PWM value : ");
  Serial.println(map(sensorVal, 0, 1023, 0, 15));

  delay(5);
}

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

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

إن ضُبطَت قيمة الدقة عبر الدالة analogWriteResolution()‎ إلى قيمة أقل من الإمكانيات التي توفرها لوحتك، فستحل أصفارٌ مكان البتات الناقصة لملء الحجم الذي يتطلبه العتاد. على سبيل المثال، سيؤدي استدعاء الدالة بالشكل analogWriteResolution(8)‎ في لوحة أردوينو Due على رجل لها الخاصية DAC بدقة 12 بت إلى إضافة 4 بتات صفرية إلى قيمةٍ بحجم 8 بت مستعملة في الدالة analogWrite()‎ للحصول على قيمة بحجم 12 بت كما هو مطلوب.

انظر أيضًا

  • الدالة analogReadResolution()‎: هي دالةٌ ملحقةٌ بالواجهة البرمجية التشابهية (Analog API) مخصَّصةٌ للوحات أردوينو Due، و Zero، و MKR، إذ تُستعمَل لضبط حجم (دقة) القيمة المعادة من الدالة analogRead()‎.
  • الدالة analogWrite()‎: تكتب قيمةً تشابهيةً (إشارة عبر معدل عرض النبضة [PWM]) على رجل محدَّدة.
  • الدالة analogRead()‎: تقرأ قيمة رجل تشابهية محدَّدة وتعيدها.
  • الدالة map()‎:
  • درس تعليمي يشرح أرجل الدخل التشابهية.

مصادر