Como Evitar Ruídos no Botão: Debounce no Arduino

Ao pressionar um botão, você pode notar que o LED às vezes pisca ou se comporta de forma estranha. Isso ocorre por causa dos ruídos mecânicos do botão, chamados de bounce. Hoje vamos resolver isso com um código de debounce.

📦 Materiais necessários:

  • 1 LED
  • 1 Botão (push button)
  • 1 Resistor de 220 Ohm (para o LED)
  • 1 Resistor de 10k Ohm (pull-down do botão)
  • Protoboard e cabos jumper
  • Arduino Uno

📷 Esquema de ligação




💻 Código com debounce por tempo


// Pinos
int botao = 2;
int led = 7;

// Variáveis debounce
int estadoBotaoAtual = LOW;
int estadoBotaoAnterior = LOW;
unsigned long ultimaLeitura = 0;
unsigned long debounceDelay = 50;

void setup() {
  pinMode(botao, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  int leitura = digitalRead(botao);

  if (leitura != estadoBotaoAnterior) {
    ultimaLeitura = millis();
  }

  if ((millis() - ultimaLeitura) > debounceDelay) {
    if (leitura != estadoBotaoAtual) {
      estadoBotaoAtual = leitura;

      if (estadoBotaoAtual == HIGH) {
        digitalWrite(led, !digitalRead(led)); // Alterna o LED
      }
    }
  }

  estadoBotaoAnterior = leitura;
}

🧠 Explicação

O código ignora leituras falsas do botão que ocorrem nos primeiros 50 ms após uma mudança. Isso evita múltiplas detecções em um único toque.

💡 Dica

Você também pode usar bibliotecas como Bounce2 para lidar com debounce automaticamente, especialmente em projetos maiores.

🚀 Amanhã no blog

No prximo vamos usar o botão para mudar o estado do LED: uma vez acende, outra apaga. O famoso botão tipo “liga/desliga”.

📢 Curta, compartilhe e continue seguindo o Eletrocondutor diariamente!

Comentários

Postagens mais visitadas deste blog

contador 9999 com pic 16f628

CNC fotos cordenadas x y z dicas

codigo assembler braço mecanico para 5 motores