// Terceiro código: LED acende com um pulso e apaga com dois pulsos
// Um clique acende o LED. Dois cliques rápidos apagam o LED.
const int botao3 = 4; // Define o pino do botão
int contador = 0; // Contador de cliques
unsigned long tempoUltimoPulso = 0; // Armazena o tempo do último clique
const int intervalo = 500; // Tempo máximo entre cliques duplos (500ms)
void setup() {
pinMode(botao3, INPUT_PULLUP); // Configura o botão como entrada com pull-up interno
pinMode(led, OUTPUT); // Configura o LED como saída
}
void loop() {
static bool ultimoEstadoBotao = HIGH; // Armazena o estado anterior do botão
bool estadoBotao = digitalRead(botao3);
if (estadoBotao == LOW && ultimoEstadoBotao == HIGH) { // Detecta o clique
if (millis() - tempoUltimoPulso < intervalo) { // Se for dentro do tempo limite
contador++; // Incrementa o contador
} else {
contador = 1; // Reinicia o contador se for um clique isolado
}
tempoUltimoPulso = millis(); // Atualiza o tempo do último clique
delay(200); // Pequena pausa para evitar múltiplas leituras
}
if (contador == 1) {
digitalWrite(led, HIGH); // Acende o LED com um clique
} else if (contador == 2) {
digitalWrite(led, LOW); // Apaga o LED com dois cliques
contador = 0; // Reseta o contador
}
ultimoEstadoBotao = estadoBotao;
}
// --------------------------------------------------------------