Читать книгу Aprender Arduino, prototipado y programación avanzada con 100 ejercicios - Rubén Beiroa Mosquera - Страница 15

006 Debounce (I)

Оглавление

El término debounce significa rebotar en inglés y es el problema con el que partimos en este libro: la eliminación de los rebotes en una señal; para ello, tenemos dos posibles soluciones: por hardware o por software. Cada una tendrá sus ventajas e inconvenientes que, en función de las circunstancias, nos hará decantarnos por uno u otra.

Empecemos por la solución por hardware; como ya sabemos, tenemos varias opciones a la hora de conectar un pulsador: Pull-Up y Pull-Down. Solución antirrebote pulsador Pull-Down:

1.Conectamos el siguiente circuito .

2.El circuito estará formado por dos resistencias en serie y un condensador en paralelo con una de ellas .

3.Es importante el valor de cada componente y el criterio de conexión.

4.Si dejamos a un lado el condensador, vemos que lo que tenemos es un divisor de tensión con dos resistencias; en el primer tomo, ya vimos cómo solucionar este tipo de circuito.

5.Atendiendo a los valores de las resistencias, en el momento en el que se pulse el botón en la primera resistencia, la caída de tensión será de 1,24 V y, en la segunda 3,76 V.

6.Si recordamos los umbrales de tensión para los niveles lógicos de estado alto (> 60% de la tensión de trabajo 3 V) y estado bajo(<30 % de la tensión de trabajo 1,5 V), podemos estar seguros de que, como el condensador se encuentra en paralelo con la segunda resistencia y se cargue hasta los 3,75 V, la lectura de esta entrada será a nivel alto.

7.Por lo tanto como al condensador le llevará un tiempo cargarse eliminará de la señal los rebotes que produce el pulsador.

8.En el momento en el que dejemos de pulsar, el condensador se empezará a descargar por la segunda resistencia hasta alcanzar los 0 V.

9.Con este circuito montado, podemos cargar el siguiente programa y comprobar que el contador ahora sí contará adecuadamente el número de pulsaciones.

10. Lo que sí que podemos apreciar es que, si pulsamos muy rápido, no se llegarán a contabilizar todas las pulsaciones: eso es por el tamaño del circuito RC, que hemos diseñado para filtrar las pulsaciones entre las que no ha transcurrido un tiempo demasiado elevado.

11. Si, en la práctica, vemos que su funcionamiento no se ajusta a las características del sistema, no tenemos más que rediseñar el circuito RC.

12. En nuestro caso, los pulsadores que se suelen utilizar en las protoboards suelen tener unos rebotes de unos 150 ms de duración; con el circuito que hemos realizado, debería ser suficiente como para eliminar esos rebotes.

13. En caso de rediseñar el circuito para que la respuesta del filtro sea más rápida o más lenta, se tiene que mantener la relación entre las resistencias que forman el divisor de tensión.




Aprender Arduino, prototipado y programación avanzada con 100 ejercicios

Подняться наверх