Conexiones pull-up y pull-down en Arduino

0
43

Una de las cosas más importantes a la hora de trabajar con entradas digitales, es la de asegurar los niveles lógicos que le estamos entregando a Arduino (o cualquier otro dispositivo electrónico).

Por ejemplo si utilizamos un pulsador como entrada, puede suministrar 0V o 5V (lógica TTL) a una entrada digital de Arduino (la que nosotros queramos), para que Arduino detecte un estado alto (HIGH o “1” lógico) o un estado bajo (LOW o “0” lógico) cuando activemos el pulsador, dependiendo de si el pulsador está conectado a GND o VCC (+5V). El esquema de conexión se muestra en la siguiente imagen.

Conexión de entrada digital directa

Aquí es cuando nos viene el “problema”, ¿Qué pasa cuando el pulsador no está activado? Pues simplemente que el circuito quedaría abierto, el pin digital queda desconectado de cualquier tensión y permanecería en un estado de alta impedancia. Como en la entrada no tenemos en ese momento ni 0V o 5V, permanecería en un estado lógico “indeterminado”, no siendo el Arduino capaz de reconocer un estado lógico definido (HIGH o LOW), con lo que no sabría qué hacer y como consiguiente se darían una serie de errores.

Para evitar este tipo de incomodas situaciones, disponemos de dos tipos de conexiones que nos solucionan el problema, las conexiones PULL-UP y PULL_DOWN.

Conexión de entrada PULL-UP y PULL-DOWN

En la conexión en «PULL-UP» tendremos a la entrada un nivel alto (+5 v) cuando el pulsador esté desactivado, y al presionar el pulsador el circuito pasará a bajo (0V).

La conexión en «PULL-DOWN» funciona al revés que la anterior, es decir,  cuando el pulsador esté desactivado tendremos un nivel bajo a la entrada (0V) y al presionar el pulsador pasara a un nivel alto (+5V).

Al accionar el pulsador estamos conectando directamente los valores de 0V y 5V, lo que significa que estamos causando un cortocircuito. Esto provocaría el paso de una corriente elevada, produciéndose un rápido calentamiento de componentes y conductores. La solución al problema es colocar una resistencia de 10KΩ (aunque también puede ser de 4K7Ω), para no crear un cortocircuito entre la alimentación y masa al presionar el pulsador.

¿Hay que hacer este tipo de conexiones en todas las entradas? No, solo es necesario en las entradas que estemos utilizando, y por supuesto que tengamos configuradas mediante programación.

Aunque estas conexiones se pueden realizar externamente, Arduino (que piensa en todo) incorpora internamente una serie de resistencias preparadas para conexión PULL-UP únicamente, que pueden ser configuradas mediante programación como se muestra en el siguiente “sketch” y que nos sirven para no tener que añadir componentes adicionales a nuestros proyectos.

 Lista de Materiales
  • Arduino UNO Rev.3
  • Cable USB tipo A-B
  • LED 5 mm (Cualquier color)
  • Pulsador
  • Resistencias de 10KΩ y 220Ω
  • Protoboard
  • Cables de conexión
 
Código del programa
Video

En conclusión, es importante asegurar los niveles lógicos de las entradas digitales en dispositivos como Arduino para evitar estados lógicos indeterminados y errores en el funcionamiento. Las conexiones PULL-UP y PULL-DOWN son soluciones útiles para garantizar que las entradas digitales tengan un nivel lógico definido cuando no están siendo activadas por un dispositivo externo.

Espero que esta información haya sido útil para entender cómo asegurar los niveles lógicos en las entradas digitales de dispositivos como Arduino. Si tienen alguna pregunta o necesitan más detalles, no dude en hacerme saber. Siéntete libre de dejar tus comentarios y preguntas en la caja de comentarios a continuación. ¡Me encantaría leer lo que tienes que decir!

0 0 votes
Article Rating
Suscríbete
Notify of
guest

0 Comments
Inline Feedbacks
View all comments