آموزش آردوینودستورات آردوینو

دستور pulseInLong در آردوینو (اندازه گیری طول پالس)

دستور pulseInLong در آردوینو پالس پین را میخواند. مثلا این دستور منتظر میماند تا پین از LOW به HIGH برود. سپس زمان را اندازه گیری میکند تا زمانی که پین دوباره LOW شود. این دستور طول پالس را در واحد میکروثانیه برمیگرداند و در صورت عدم دریافت پالس کامل، 0 را برمیگرداند.

زمان بندی این عملکرد به صورت تجربی تعیین شده است و احتمالاً خطاهایی را در پالس های کوتاه تر نشان می دهد. روی پالس هایی از 10 میکرو ثانیه تا 3 دقیقه کار می کند. فقط در صورت فعال شدن وقفه ها می توان از این دستور استفاده کرد.

تفاوت دستور pulseInLong با دستور pulseIn در این است که دستور pulseIn مدت زمان انتظار برای دریافت پالس را اندازه گیری میکند و دستور pulseInLong مدت زمان پالس ورودی را اندازه گیری میکند.

دستور pulseInLong

pulseInLong(pin, value)
pulseInLong(pin, value, timeout)

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.
  • pin: به جای pin باید نام پین که میخواهید در آن پالس را دریافت کنید بنویسید.
  • value: در این پارامتر باید HIGH یا LOW را بنویسید. این پارامتر تعیین میکند آردوینو منتظر دریافت چه پالسی باشد.
  • timeout (اختیاری): در این پارامتر تعیین میکند برای پالس چقدر منتظر بماند. در حالت پیشفرض 1 ثانیه است.

به طور مثال اگر میخواهید در پین 5 مدت زمان پالس HIGH را اندازه گیری کنید، باید دستور را به شکل pulseInLong(5, HIGH) بنویسید.

نمونه کد با دستور pulseInLong

در کد زیر ما مدت زمان بالا ماندن پین 7 را اندازه گیری میکنیم و درس سریال مانیتور نمایش میدهیم.

int pin = 7; // از پین 7 استفاده میکنیم.
unsigned long duration; // ایجاد یک متغیر از نوع لانگ بدون علامت

void setup() {
  Serial.begin(9600); // شروع ارتباط سریال
  pinMode(pin, INPUT); // تعین پین 7 به عنوان ورودی
}

void loop() {
  duration = pulseInLong(pin, HIGH); // اندازه گیری مدت زمان بالا ماندن پین 7
  Serial.println(duration); // نمایش مدت زمان در سریال مانیتور
}
4/5 - (2 امتیاز)

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *