سلام دوستان امیدوارم حالتون خوب باشه دوستان من یه مشکلی با دیبانس کردن دکمه دارم یه اینتراپت ایجاد کردن در آردوینو و یه دکمه قرار دادم که اگر کلید را فشار دادیم فلان کار رو بکنه اگر یا بار دیکه فشار دادیم فلان کا ر رو بکنه دوستان از روشهای مختلفی هم برای دیبانس کردن دکمه استفاده کردم ولی متاسفانه جواب نگرفتم کسی میدونه مشکل از کجاست؟
اینم کد:
گمان میکنم توی اینتراپت همه دستورات رو با هم اجرا میکنه !
امکانش هست که متد Millis() اصلا ساپورت نکنه توی اینتراپت ؟
اینم کد:
if (flag_interrupt == 1 && statebutton == HIGH && millis() - Time > debunce) {
digitalWrite(TURNON_LED_RED, HIGH);
statebutton = LOW;
flag_interrupt = 0;
FAN_ID= 1;
} else
if (flag_interrupt == 0 && statebutton == LOW && millis() - Time > debunce) {
// All Pins goes off it's mean the airconditioner is turn off
FAN_ID= 0;
statebutton = HIGH;
FanGOESOFF();
flag_interrupt = 1;
Reset();
}
Time = debunce;
در کنار کد از دیبانس Debounce سخت افزاری RC هم استفاده کردم جواب نداد.digitalWrite(TURNON_LED_RED, HIGH);
statebutton = LOW;
flag_interrupt = 0;
FAN_ID= 1;
} else
if (flag_interrupt == 0 && statebutton == LOW && millis() - Time > debunce) {
// All Pins goes off it's mean the airconditioner is turn off
FAN_ID= 0;
statebutton = HIGH;
FanGOESOFF();
flag_interrupt = 1;
Reset();
}
Time = debunce;
گمان میکنم توی اینتراپت همه دستورات رو با هم اجرا میکنه !
امکانش هست که متد Millis() اصلا ساپورت نکنه توی اینتراپت ؟
دیدگاه