توضیحات
تابع delay – تاخیر در آردوینو، برنامه را برای مدت زمانی (برحسب میلی ثانیه) مشخص متوقف می کند. (هر 1000 میلی ثانیه معادل 1 ثانیه است.)
نحوه استفاده
delay(ms)
- ms: مدت زمان توقف برحسب میلی ثانیه. داده از نوع unsigned long است.
خروجی تابع
تابع خروجی ندارد.
مثال
کد زیر پین 13 را با فاصله 1 ثانیه (1000 میلی ثانیه) خاموش و روشن می کند.
int ledPin = 13; // به پین 13 دیجیتال متصل می شود LED
void setup() {
pinMode(ledPin, OUTPUT); // پین به عنوان خروجی تنظیم می شود
}
void loop() {
digitalWrite(ledPin, HIGH); // روشن کردن پین 13
delay(1000); // تاخیر به مدت 1 ثانیه
digitalWrite(ledPin, LOW); // خاموش کردن پین 13
delay(1000); // تاخیر به مدت 1 ثانیه
}
نکات مهم
ایجاد یک چراغ چشمک زن با دستور delay() ، اسان است و در بسیاری از طرح ها از تاخیر های کوتاه برای کارهایی مانند باز کردن سوییچ استفاده می شود. اما استفاده از دستور delay() مشکلاتی را نیز به همراه دارد. به طور مثال در زمان تاخیر ، هیچ محاسبات ریاضی ، خواندن اطلاعات از سنسور ها یا دستکاری در پین انجام نمی شود. به عبارتی تمام فعالیت ها متوقف می شوند. معمولاً برنامه نویسان اگاه از استفاده delay() برای مدت بیش از 10 میلی ثانیه خودداری می کنند ، مگر اینکه طرح بسیار ساده باشد.
در زمان اجرای تابع delay() برخی از کار ها مانند وقفه ها ، ارتباط سریال در پین RX ، مقادیر PWM و وضعیت پین ها حفظ می شوند.