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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'تحسب الدالة <code>pulseIn()‎</code> طول نبضةٍ (إمَّا <code>HIGH</code> أو <code>LOW</code>) على رجل محدَّدة. إن كانت مثل...')
 
ط
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
تحسب الدالة <code>pulseIn()‎</code> طول نبضةٍ (إمَّا <code>HIGH</code> أو <code>LOW</code>) على رجل محدَّدة. إن كانت مثلًا القيمة الممرَّرة إلى الدالة هي <code>HIGH</code>، فستنتظر حتى تتغير حالة الرجل من <code>LOW</code> إلى <code>HIGH</code> لتبدأ حساب الوقت الذي تستغرقه الإشارة للعودة إلى الحالة <code>LOW</code> لتوقف المؤقت حينذاك؛ تعيد الدالة بعدئذٍ طول النبضة بواحدة الميكروثانية أو تستسلم وتعيد القيمة 0 بعد انتهاء المهلة الزمنية المحدَّدة إن لم تعثر على نبضة كاملة خلالها.
+
<noinclude>{{DISPLAYTITLE:الدالة <code>pulseIn()‎</code> في  أردوينو}}</noinclude>
 +
تحسب الدالة <code>pulseIn()‎</code> طول نبضةٍ (إمَّا <code>HIGH</code> أو <code>LOW</code>) على رجل محدَّدة. إن كانت مثلًا القيمة الممرَّرة إلى الدالة هي <code>HIGH</code>، فستنتظر حتى تتغير حالة الرجل من <code>LOW</code> إلى <code>HIGH</code> لتبدأ حساب الوقت الذي تستغرقه الإشارة للعودة إلى الحالة <code>LOW</code> لتُوقِف المؤقت حينذاك؛ تعيد الدالة بعدئذٍ طول النبضة بواحدة الميكروثانية أو تستسلم وتعيد القيمة 0 بعد انتهاء المهلة الزمنية المحدَّدة إن لم تعثر على نبضة كاملة خلالها.
  
 
يحدَّد التوقيت في هذه الدالة بطريقة تجريبية ويحتمل أن يحمل أخطاءً كلما زاد طول النبضة. تعمل هذه الدالة مع النبضات التي يتراوح طولها من 10 ميكرو ثانية إلى 3 دقائق.
 
يحدَّد التوقيت في هذه الدالة بطريقة تجريبية ويحتمل أن يحمل أخطاءً كلما زاد طول النبضة. تعمل هذه الدالة مع النبضات التي يتراوح طولها من 10 ميكرو ثانية إلى 3 دقائق.
 
+
==البنية العامة==
== البنية العامة ==
 
 
<syntaxhighlight lang="arduino">
 
<syntaxhighlight lang="arduino">
 
pulseIn(pin, value)
 
pulseIn(pin, value)
سطر 9: سطر 9:
 
pulseIn(pin, value, timeout)
 
pulseIn(pin, value, timeout)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==المعاملات==
== المعاملات ==
+
===<code>pin</code>===
 
 
=== <code>pin</code> ===
 
 
عددٌ صحيح يشير إلى الرجل المراد حساب طول النبضة المولَّدة عليها.
 
عددٌ صحيح يشير إلى الرجل المراد حساب طول النبضة المولَّدة عليها.
 
+
===<code>value</code>===
=== <code>value</code> ===
 
 
نوع النبضة المراد قراءتها لحساب طولها وتكون إمَّا <code>HIGH</code> أو <code>LOW</code>.
 
نوع النبضة المراد قراءتها لحساب طولها وتكون إمَّا <code>HIGH</code> أو <code>LOW</code>.
 
+
===<code>timeout</code>===
=== <code>timeout</code> ===
 
 
[[Arduino/long|عددٌ طويلٌ عديم الإشارة]] (unsigned long) يحدِّد المهلة الزمنية بالميكروثانية التي ستنتظر الدالة خلالها بدء النبضة عند الحافة <code>value</code>. القيمة الافتراضية لهذا المعامل الاختياري هي: 1 ثانية.
 
[[Arduino/long|عددٌ طويلٌ عديم الإشارة]] (unsigned long) يحدِّد المهلة الزمنية بالميكروثانية التي ستنتظر الدالة خلالها بدء النبضة عند الحافة <code>value</code>. القيمة الافتراضية لهذا المعامل الاختياري هي: 1 ثانية.
 
+
==القيم المعادة==
== القيم المعادة ==
 
 
يعاد [[Arduino/long|عددٌ طويلٌ عديم الإشارة]] يمثِّل طول النبضة المولَّدة على الرجل <code>pin</code> بالميكروثانية، أو تعاد القيمة 0 إن لم تبدأ أيَّة نبضة عند الحافة <code>value</code> قبل انتهاء المهلة <code>timeout</code> الزمنية.
 
يعاد [[Arduino/long|عددٌ طويلٌ عديم الإشارة]] يمثِّل طول النبضة المولَّدة على الرجل <code>pin</code> بالميكروثانية، أو تعاد القيمة 0 إن لم تبدأ أيَّة نبضة عند الحافة <code>value</code> قبل انتهاء المهلة <code>timeout</code> الزمنية.
 
+
==أمثلة==
== أمثلة ==
 
 
حساب زمن نبضة على الرجل 7 باستعمال الدالة <code>pulseIn()‎</code>:<syntaxhighlight lang="arduino">
 
حساب زمن نبضة على الرجل 7 باستعمال الدالة <code>pulseIn()‎</code>:<syntaxhighlight lang="arduino">
 
int pin = 7;
 
int pin = 7;
سطر 39: سطر 33:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
==انظر أيضًا==
 +
* الدالة <code>[[Arduino/advanced io/notone|noTone()‎]]</code>: توقف توليد موجةٍ مربَّعةٍ على رجل معيَّنة أُنشئَت باستعمال الدالة <code>[[Arduino/advanced io/tone|tone()‎]]</code>.
 +
* الدالة <code>[[Arduino/advanced io/pulseinlong|pulseInLong()‎]]</code> هي دالةٌ بديلةٌ محسَّنةٌ للدالة <code>pulseIn()‎</code>، إذ يمكنها التعامل مع نبضات ومقاطعات طويلة متأثرة بحالات مختلفة.
 +
* الدالة <code>[[Arduino/advanced io/shiftin|shiftIn()‎]]</code>: تزيح بايتًا من البيانات من رجل محدَّدة إلى متغيِّر مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى <code>HIGH</code>.
 +
* الدالة <code>[[Arduino/advanced io/shiftout|shiftOut()‎]]</code>: تزيح بايتًا من البيانات إلى رجل محدَّدة مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى <code>HIGH</code>.
 +
* الدالة <code>[[Arduino/advanced io/tone|tone()‎]]</code>: تولِّد موجةً مربَّعةً بتردد محدَّد (وبنسبة 50% لدورة العمل [duty cycle]) على رجل معيَّنة.
  
== انظر أيضًا ==
+
==مصادر==
 
+
* [https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/ صفحة الدالة pulseIn()‎ في توثيق أردوينو الرسمي.]
== مصادر ==
+
[[تصنيف: Arduino]]
[https://www.arduino.cc/reference/en/language/functions/advanced-io/pulsein/ صفحة الدالة pulseIn()‎ في توثيق أردوينو الرسمي.]
+
[[تصنيف: Arduino Function]]
 +
[[تصنيف: Arduino I/O]]
 +
[[تصنيف: Arduino Advanced I/O]]

المراجعة الحالية بتاريخ 15:01، 17 أكتوبر 2018

تحسب الدالة pulseIn()‎ طول نبضةٍ (إمَّا HIGH أو LOW) على رجل محدَّدة. إن كانت مثلًا القيمة الممرَّرة إلى الدالة هي HIGH، فستنتظر حتى تتغير حالة الرجل من LOW إلى HIGH لتبدأ حساب الوقت الذي تستغرقه الإشارة للعودة إلى الحالة LOW لتُوقِف المؤقت حينذاك؛ تعيد الدالة بعدئذٍ طول النبضة بواحدة الميكروثانية أو تستسلم وتعيد القيمة 0 بعد انتهاء المهلة الزمنية المحدَّدة إن لم تعثر على نبضة كاملة خلالها.

يحدَّد التوقيت في هذه الدالة بطريقة تجريبية ويحتمل أن يحمل أخطاءً كلما زاد طول النبضة. تعمل هذه الدالة مع النبضات التي يتراوح طولها من 10 ميكرو ثانية إلى 3 دقائق.

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

pulseIn(pin, value)

pulseIn(pin, value, timeout)

المعاملات

pin

عددٌ صحيح يشير إلى الرجل المراد حساب طول النبضة المولَّدة عليها.

value

نوع النبضة المراد قراءتها لحساب طولها وتكون إمَّا HIGH أو LOW.

timeout

عددٌ طويلٌ عديم الإشارة (unsigned long) يحدِّد المهلة الزمنية بالميكروثانية التي ستنتظر الدالة خلالها بدء النبضة عند الحافة value. القيمة الافتراضية لهذا المعامل الاختياري هي: 1 ثانية.

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

يعاد عددٌ طويلٌ عديم الإشارة يمثِّل طول النبضة المولَّدة على الرجل pin بالميكروثانية، أو تعاد القيمة 0 إن لم تبدأ أيَّة نبضة عند الحافة value قبل انتهاء المهلة timeout الزمنية.

أمثلة

حساب زمن نبضة على الرجل 7 باستعمال الدالة pulseIn()‎:

int pin = 7;
unsigned long duration;

void setup()
{
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
}

انظر أيضًا

  • الدالة noTone()‎: توقف توليد موجةٍ مربَّعةٍ على رجل معيَّنة أُنشئَت باستعمال الدالة tone()‎.
  • الدالة pulseInLong()‎ هي دالةٌ بديلةٌ محسَّنةٌ للدالة pulseIn()‎، إذ يمكنها التعامل مع نبضات ومقاطعات طويلة متأثرة بحالات مختلفة.
  • الدالة shiftIn()‎: تزيح بايتًا من البيانات من رجل محدَّدة إلى متغيِّر مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى HIGH.
  • الدالة shiftOut()‎: تزيح بايتًا من البيانات إلى رجل محدَّدة مقدار بتٍّ واحدٍ في كل مرة تتغير فيها حالة النبضة على رجل أخرى إلى HIGH.
  • الدالة tone()‎: تولِّد موجةً مربَّعةً بتردد محدَّد (وبنسبة 50% لدورة العمل [duty cycle]) على رجل معيَّنة.

مصادر