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

دستور pulseIn در آردوینو (اندازه گیری زمان تغییر)

دستور pulseIn در آردوینو پالس پین را میخواند. این دستور مدت زمانی که طول کشیده است که پین HIGH یا LOW شود را اندازه گیری میکند.

اگر مقدار HIGH باشد ، pulseIn() منتظر می ماند تا پین از LOW به HIGH برسد. این زمان انتظار را ذخیره میکند و با HIGH شدن، اندازه گیری را متوقف میکند و مدت زمان انتظار را برمیگرداند. در صورت عدم دریافت پالس HIGH، اندازه گیری متوقف میشود و طول پالس بر حسب میکروثانیه بازگردانده میشود. این دستور در پالس های طولانی ممکن است در اندازه گیری اندکی خطا داشته باشد. دستور pulseIn() روی پالس ها از 10 میکروثانیه تا 3 دقیقه عملکرد مناسبی دارد.

دستور pulseIn

pulseIn(pin, value)
pulseIn(pin, value, timeout)

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

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

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

جهت کسب اطلاعات بیشتر، فاصله سنج با آردوینو را مشاهده کنید.

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

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

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

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

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

دستورات مرتبط:

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

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

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

محمد رحیمی

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

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

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