O que é Debouncing?
Share
O Debouncing é o conjunto de métodos de engenharia de hardware ou software desenvolvidos para filtrar e eliminar ruídos elétricos transitórios e oscilações indesejadas gerados pelo impacto mecânico (bouncing) dos contatos metálicos de chaves e botões ao serem acionados.
Métodos de Debouncing de Chaves e Push Buttons
Evitar leituras duplicadas falsas é indispensável para sistemas lógicos confiáveis. Ao ler botões montados na Protoboard MB-102, o debouncing impede falhas lógicas digitais de contagem rápida. As abordagens tradicionais envolvem:
- Debouncing por Software (Bloqueante): Inserção de um pequeno delay (ex: 20ms a 50ms) via programa após detectar a primeira transição, tempo suficiente para a mola mecânica estabilizar.
-
Debouncing por Software (Não-bloqueante): Rastreamento contínuo da contagem de tempo via chamadas de comparação com a função
millis(), permitindo que o microcontrolador execute tarefas paralelas. - Debouncing por Hardware (Filtro RC): Acoplamento físico de um pequeno circuito passa-baixa analógico composto por um resistor e um capacitor em paralelo para amortecer e suavizar a tensão transitória.
O tratamento de debounce é obrigatório em projetos embarcados de automação que processam interrupções físicas diretas do processador.
Perguntas Frequentes (FAQ)
- Qual o comportamento de um botão no Arduino sem tratamento de debouncing?
- Ao clicar fisicamente uma única vez no botão, o Arduino lerá múltiplas mudanças rápidas HIGH/LOW de transição de contatos mecânicos interpretando e disparando o evento várias vezes seguidas de forma incorreta.
- Qual a desvantagem do debouncing por software feito com a função delay()?
- O
delay()suspende de forma bloqueante todo o processamento de código da CPU. Durante esses milissegundos de pausa do debouncing, o Arduino é incapaz de monitorar outros sensores lógicos ou acionamentos rápidos do circuito.