En el rebote, generalmente tiene dos opciones: una solución de hardware o una solución de software. Dependiendo de la aplicación, cualquiera podría ser preferible.
Cuantas menos entradas se deban anular, más preferible será una solución de software, especialmente en microcontroladores de baja potencia. Una solución de software sería utilizar interrupciones que se ejecutan cada vez que cambia el estado de entrada y luego hacer que algún tipo de variable realice un seguimiento de cuándo ocurrió el último cambio de estado o "rebote". Si está en el milisegundo de un dígito, entonces es probable que sea un rebote, y usted querría rechazar ese valor. Mucho será una prueba y error para ver cuál es un tiempo aceptable entre prensas, pero 100 ms es un buen punto de partida porque es muy improbable que un humano pueda presionar un botón más de 10 veces por segundo y es incluso menos probable que ese sea su punto de partida. intención, y es casi imposible que un rebote de un botón pueda ocurrir en más de 100 ms a menos que sea disfuncional.
En cuanto a una solución de hardware, esto puede aumentar la cantidad de elementos del circuito que su placa tendrá que usar, por lo que hay un inconveniente. Pero si está limitado por el poder del microcontrolador que está usando y necesita muchos conmutadores con rebajas, podría ser la única opción viable. Pero si puede administrar y sintonizar el circuito RC correcto a su entrada, puede tener un circuito de "suavizado" que rechazará los cambios rápidos en su señal de entrada antes de enviarla a la entrada del microcontrolador.