برنامه 5 ( چشمک زدن LED بدون تاخیر در برنامه و بدون استفاده از تابع Delay)
جمعه, ۱۵ اسفند ۱۳۹۳، ۱۱:۱۳ ق.ظ

در هنگام اجرای برنامه اگر از تابع Delay جهت چشمک زدن LED استفاده کنیم ،برنامه به هنگام رسیدن به خط Delay مدت زمان قابل تنظیمی مکث میکند
در این مدت زمان اگر ورودی ای داشته باشیم و بخواهیم آن را نیز چک نماییم امکان پذیر نیست
برای رفع این خدا از توابعی چون millis() , micros() استفاده میکنیم
نمونه برنامه را در ادامه مطلب ببینید
void setup() {
pinMode(13, OUTPUT); // پیکربندی پین 13 به عنوان خروجی
}
void loop()
{
unsigned long current_time = millis(); //معرفی متغیر و شمارش برحسب میلی ثانیه و ذخیره این تایم در آن
if(current_time - last_time >1000) { // اگر مدت زمان شمارش شده تا به الان منهای تایم قبلی شمارش شده
last_time = current_time; // بزرگتر از 1000 میلی ثانیه شد(زمان هر چشمک زدن 1000 میلی ثانیه است )
// اخرین تایم را برابر زمان کنونی کند که در حال حاظر صفر ده و دوباره در حال شمارش است
if (led == LOW) // اگر پین 13 خاموش بود
led = HIGH; // آن را روشن کن
else // در غیر این صورت
led = LOW; // پین 13 را خاموش کن
digitalWrite(13, led);
}
}
- ۹۳/۱۲/۱۵
حاجی این کد کلا مشکل داره اصلا led و اینا رو تعریف نکردی کامپایل هم نمیشه
خودت اول یه تستی بکن بعد منتشر کن