задержка без delay

alex85
Offline
Зарегистрирован: 12.11.2013

как сделать задержку без delay (чтобы избежать дребезга кнопки) использовать переменную? других вариантов нету?

int time=(millis()/10)%2   //выводить 1 раз в 10 мс 
if (button==high && time==1){
..........
..........
}

 

 

maksim
Offline
Зарегистрирован: 12.02.2012
alex85
Offline
Зарегистрирован: 12.11.2013

места много занимает..... однако спасибо

maksim
Offline
Зарегистрирован: 12.02.2012

alex85 пишет:

места много занимает...

Кто?

alex85
Offline
Зарегистрирован: 12.11.2013

весь код который у меня получится вместе с этой задержкой....а тот что я написал как вариант можно использовать?

 

maksim
Offline
Зарегистрирован: 12.02.2012
  static bool state = 0;
  if(!state && digitalRead(pinButton))
  {
    static unsigned long millis_prev = 0;
    if(millis()-100 > millis_prev)
    {
      // делаем че надо
      Serial.println("Pushed");
    }
    millis_prev = millis(); 
    state = 1;  
  }
  if(state && !digitalRead(pinButton)) state = 0;

 

alex85
Offline
Зарегистрирован: 12.11.2013

Спасибо

MaksMS
Offline
Зарегистрирован: 11.03.2013

Можно просто использовать библитеку Bounce

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Читайте классику перед сном:

http://alxarduino.blogspot.com/

Кстати, куда всё-таки пропал Леший?  ОбЫдно, даааа...  :(