Paso 13: Detalles código - debounce interruptor
Aquí cubriremos algunos de los aspectos más interesantes del código.
Manejo del modo de interruptor:
Mecánicos como pulsadores o interruptores son muy agradable y cómodo de usar con un microcontrolador, pero un gran problema... Que generan mucho ruido eléctrico cuando cambia o presiona (véase el cuadro para más detalles). Este "ruido" hace estragos con su código para leer un botón o interruptor y puede provocar el código a leer mal un cambio en el estado del interruptor. Para remediar esto, agregamos algunos lógica para el interruptor de "debounce".
Un debounce es un pequeño código extra para hacer un seguimiento de la última vez que ocurrió un cambio en el estado del interruptor. Cuando el interruptor se enciende o cambia, la función que lee el pin digital, ahorra el tiempo que se produjo el cambio. Cuando se observa otro cambio, que guarda el tiempo se comprueba para ver si está fuera del alcance del nuevo tiempo. Si el nuevo cambio es menos de 20ms del último de ellos, el cambio es ignorado y se supone que ruido. Si es mayor de 20 MS, entonces se toma el cambio y un nuevo tiempo de cambio se guarda. Esto evita que el código se múltiples cambios por interruptor flip.