Cuando activamos o desactivamos un pulsador, se producen una serie de rebotes o fluctuaciones (ruido) hasta que se asienta el valor que el pulsador va a transmitir. La mayoría de microcontroladores, incluyendo Arduino, debido a su alta velocidad de procesamiento de instrucciones son capaces de detectar estos rebotes y como consiguiente nos encontramos con un problema a la hora de trabajar con pulsadores, ya que Arduino será capaz de interpretar falsos niveles lógicos cuando activemos o desactivemos un pulsador (sin la eliminación de rebotes, al presionar el pulsador una sola vez, Arduino puede creer que lo hemos presionado repetidas veces).
Rebotes en un pulsador
En la mayoría de programas simplemente se utiliza un delay (retardo) de unos cuantos milisegundos (100 ms por ejemplo) entre cada lectura del estado del pulsador para evitar el problema de los rebotes, puesto que con ese tiempo de retardo es suficiente para que el pulsador haya estabilizado su estado y Arduino no detecte fluctuaciones.En este POST os muestro una manera mucho más profesional y lógica de solucionar el problema de los rebotes, lo que conlleva comprobar el estado del pulsador dos veces en un corto período de tiempo para asegurarnos de que definitivamente se ha presionado el pulsador, además de conectar un display LCD a nuestro Arduino para mostrar el número de veces que se presiona el pulsador.
Lista de Materiales:
· Arduino UNO Rev.3.· Cable USB tipo A-B.· Pulsador.· Resistencia de 10KΩ.· Módulo LCM 1602 I2C V1.· Display 16x2 LCD 1602.· Protoboard.· Cables de conexión.
Programa:
Descarga del Programa
Video: