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).