Debounce: ¿Qué es y cómo evitarlo?

Introducción

Los rebotes son las falsas pulsaciones (ruido) que se producen al hacer falsos contactos en el interruptor. El proceso de eliminarlos se llama "Debounce".

Los dispositivos electrónicos al cambiar de estado generan una señal que, sin ser perfectamente cuadrada, en general es más o menos "recta". Veamos, por ejemplo, la señal que genera Arduino al cambiar el estado de una salida digital de HIGH a LOW.

cambiar el estado de una salida digital

Sin embargo el entorno real muchos dispositivos físicos habitualmente generan ruido en los flancos de señal. Como ejemplo, veamos la variación de tensión que ocurre cuando el cambio de estado se genera por un pulsador.

cambio de estado de un pulsador

Observar la cantidad de ruido ocurrido tras el cambio de estado. En esencia, en el rango de unos micro-segundos la señal es puro ruido. Todos esos picos pueden provocar disparos múltiples de una interrupción.