Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Arduino timer

Skus toto (copypastni to cele tak jak je), je tam zabranene aby sa zavolal timer znova (kvoli bouncingu tlacitka) ked timer uz bezi.

#include "Timer.h"
  
Timer t;
int pin = 2;
int pin1 = 13;
int stav = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(pin1,INPUT_PULLUP);
  pinMode(pin,INPUT_PULLUP);
  pinMode(pin, OUTPUT); 
}

void vratPinNaHigh()
{
  digitalWrite(pin, HIGH);
  stav = 0;
}
 
void loop()
{
  if (digitalRead(pin1)== LOW && stav == 0){
     digitalWrite(pin, LOW);
     t.after(10*1000, vratPinNaHigh) 
     Serial.println("hups");
     stav = 1;
    }

  t.update();
}
to funguje jak?
Da sa to urobit blbovzdorne X roznymi sposobmi, da sa urobit debouncing len pomocou delay(10) a nechat povodny kod, da sa to urobit komplikovany debouncing s ratatnim alebo dalsim timerom ak je prechod cez loop casovo kriticky, atd.

Alebo ked pouzijes tie tvoje thready, tak musis urobit debouncing tlacitka. V tomto co som pisal to neni nutne ptz je to fuk, pocas celeho pulzu som v stav = 1 (a pisal si ze vstupny pulz je kratsi jak vystupny).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny