#define led 13
#define led2 8
#define botao 2
#define botao2 3
boolean EstadoBotao[5], EstadoBotaoAnterior[5]; // variável para vericar o estado do botão
unsigned long TempoAnterior[5]; // última vez que o botão foi pressionado
unsigned long debounceDelay = 200; // O intervalo, igual ao delay do código anterior
void setup() {
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(botao, INPUT_PULLUP);
pinMode(botao2, INPUT_PULLUP);
}
void BotaoLed(int pinoBot, int pinoLed, boolean estadoLed){
EstadoBotao[pinoBot] = !digitalRead(pinoBot);
if (EstadoBotao[pinoBot] != EstadoBotaoAnterior[pinoBot]) TempoAnterior[pinoBot] = millis();
if (EstadoBotao[pinoBot] == HIGH) {
if ((millis() - TempoAnterior[pinoBot]) > debounceDelay) {
digitalWrite(pinoLed, estadoLed);
}
EstadoBotaoAnterior[pinoBot] = EstadoBotao[pinoBot];
}
}
void loop() {
BotaoLed(botao2,led,HIGH);
BotaoLed(botao,led,LOW);
}