Si ya te has iniciado en Arduino en alguna ocasión te habrás encontrado con el término resistencia pull up y pull down y si no lo has hecho no tardarás en encontrarlo, así que es preferible saber de que se trata este tipo de resistencia especial. En este artículo intentaremos de explicar de una manera clara que son y para que se utilizan.
Lo primero que hay que decir es que no son unas resistencias especiales, se tratan de resistencias normales pero que están dispuestas en un circuito de una manera determinada. Dependiendo de la configuración se determinará si la resistencia es pull up o pull down.
Como funcionalidad básica, estas resistencias establecen un estado lógico en un pin o entrada de un circuito lógico cuando se encuentra en estado reposo. Como bien indica su nombre la resistencia pull up establece un estado HIGH y las resistencias pull down establecen un estado LOW cuando el pin se encuentra en reposo. Esto evita los falsos estados que se producen por el ruido generado por los circuitos electrónicos.
Veamos un poco como funciona esta configuración. En la siguiente imagen vemos como deberíamos situar las resistencias para cada modo.
Resistencia pull down
En la configuración pull down, cuando el circuito está en reposo como se muestra en la imagen de arriba, la caída de tensión en la resistencia es prácticamente 0V (LOW), en cambio si pulsamos P1, dejará pasar la corriente y tendremos una diferencia de potencial de 5V (HIGH). Este es el uso normal del estado LOW y HIGH.
Resistencia pull up
Por el contrario, en la configuración pull up, cuando el circuito está en reposo, P1 sin pulsar, la caída de tensión es de 5V (HIGH), en cambio cuando pulsamos P1 se deriva toda la corriente a masa y la caída de tensión es 0V (LOW).
Normalmente las resistencias que se utilizan en estos casos son de 10K. Como hemos comprobado, estas dos configuraciones nos evitarán que en estado de reposo midamos un valor erróneo eliminando la influencia de factores externos sobre nuestras mediciones como el ruido eléctrico.
Resistencia pull up con Arduino
En Arduino podemos aplicar una resistencia pull up en las entradas digitales a través de código. Simplemente poniendo un pin en modo INPUT_PULLUP con la instrucción pinMode. Resulta muy sencillo y nos evitará tener que añadir más elementos a nuestros circuitos.
Podemos ver un ejemplo de para qué sirve este tipo de configuraciones con los pulsadores.