#define BOTAO 12
#define LED_CURTO 13
#define LED_LONGO 11
unsigned long tempoPressionado = 0;
bool estadoAnterior = HIGH;
const unsigned long tempoFiltro = 50;
const unsigned long tempoCurto = 2000;
const unsigned long tempoLongo = 5000;
bool ledCurto = false;
bool ledLongo = false;
void setup() {
pinMode(BOTAO, INPUT_PULLUP);
pinMode(LED_CURTO, OUTPUT);
pinMode(LED_LONGO, OUTPUT);
}
void loop() {
bool leitura = digitalRead(BOTAO);
if (leitura == LOW && estadoAnterior == HIGH) {
tempoPressionado = millis();
estadoAnterior = LOW;
}
if (leitura == HIGH && estadoAnterior == LOW) {
unsigned long duracao = millis() - tempoPressionado;
if (duracao >= tempoLongo) {
ledLongo = !ledLongo;
digitalWrite(LED_LONGO, ledLongo);
} else if (duracao >= tempoCurto) {
ledCurto = !ledCurto;
digitalWrite(LED_CURTO, ledCurto);
}
estadoAnterior = HIGH;
}
}