martes, 15 de diciembre de 2015

Conexiones PULL-UP y PULL-DOWN


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:




No hay comentarios:

Publicar un comentario