توضیحات
تابع pulseIn – ایجاد پالس در آردوینو، یک پالس را (بالا یا پایین) روی پین مورد نظر می خواند. به عنوان مثال ، اگر مقدار HIGH باشد ، pulseIn() منتظر می ماند تا پین از LOW به HIGH برود، سپس شروع به شمردن می کند، سپس منتظر می ماند که پین LOW شود و شمردن را متوقف می کند. طول پالس بر حسب میکروثانیه در خروجی داده می شود یا اگر پالس کاملی دریافت نشود ، مقدار 0 را برمی گرداند .
دستور pulseln() ممکن است در اندازه گیری های طولانی دارای خطا باشد. محدوده مناسب برای این دستور از 10 میکروثانیه تا 3 دقیقه است.
نکته : در صورت استفاده از timeout اختیاری ، کد سریعتر اجرا می شود.
نحوه استفاده
pulseIn(pin, value)
pulseIn(pin, value, timeout)
- pin: پینی که قرار است پالس دریافت کنیم. داده از نوع int است.
- value: نوع پالس برای خواندن (HIGH یا LOW) داده از نوع int است.
- · timeout (اختیاری): زمانی (برحسب میکروثانیه) که باید برای پالس منتظر بمانیم. به طور پیشفرض 1 ثانیه است. داده از نوع unsigned long است.
خروجی تابع
طول پالس (برحسب میکروثانیه) یا در صورتی که پالسی قبل از اتمام زمان (timeout) شروع نشود مقدار 0 را برمی گرداند.
مثال
مدت زمان پالس را روی پین 7 چاپ می کند.
int pin = 7;
unsigned long duration;
void setup() {
Serial.begin(9600);
pinMode(pin, INPUT); // پین 7 به عنوان ورودی
}
void loop() {
duration = pulseIn(pin, HIGH); // اندازه گیری طول بالا شدن پین 7
Serial.println(duration); // نمایش در سریال مانیتور
}