#define BOTAO_LIGA 12
#define BOTAO_DESLIGA 11
#define LED 13
unsigned long ultimoTempoLiga = 0;
unsigned long ultimoTempoDesliga = 0;
const unsigned long tempoFiltro = 50;
bool estadoLigaAnt = HIGH;
bool estadoDesligaAnt = HIGH;
void setup() {
pinMode(BOTAO_LIGA, INPUT_PULLUP);
pinMode(BOTAO_DESLIGA, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
void loop() {
bool leituraLiga = digitalRead(BOTAO_LIGA);
bool leituraDesliga = digitalRead(BOTAO_DESLIGA);
if (leituraLiga != estadoLigaAnt) {
ultimoTempoLiga = millis();
estadoLigaAnt = leituraLiga;
}
if ((millis() - ultimoTempoLiga) > tempoFiltro && leituraLiga == LOW) {
digitalWrite(LED, HIGH);
while (digitalRead(BOTAO_LIGA) == LOW);
}
if (leituraDesliga != estadoDesligaAnt) {
ultimoTempoDesliga = millis();
estadoDesligaAnt = leituraDesliga;
}
if ((millis() - ultimoTempoDesliga) > tempoFiltro && leituraDesliga == LOW) {
digitalWrite(LED, LOW);
while (digitalRead(BOTAO_DESLIGA) == LOW);
}
}