lunes, 2 de septiembre de 2013

Resistencias Pull-Up - Pull-Down


Resistencia Pull-Up o resistencia de arranque.


Como ya hemos visto, algunas de los pines de nuestro controlador funcionan en estados HIGH (alto), o en estados LOW (bajo).

Si usábamos el pin 13 y decidíamos que generara una señal de salida, lo hacíamos en el bloque de configuración de nuestro sketch, declarando el pin que íbamos a usar como OUTPUT (salida).

Para ello usamos los pines digitales del Arduino, señalados del 13 al 2 en la sección digital de la placa.


Por ejemplo el PIN 13, entonces:
void setup()
{   
pinMode(13, OUTPUT); // declara el pin digital 13 como de salida
}

Y lo usábamos, por ejemplo, para decirle a nuestro LED  bien que se encendiera o bien que se apagara.

Para ello lo que hacíamos era usar la función digitalWrite() y pasarle sus dos parámetros . Estos parámetros son utilizados por la función digitalWrite() para decidir qué pin y qué estado utilizar, si bien “encendido” o HIGH, o por el contrario “apagado” o LOW.

En nuestro código lo escribíamos:

digitalWrite(ledPin, HIGH); // pone el estado del pin a Encendido
 
que hablando de voltajes, sería ponerlo a 5 voltios,

o si queríamos apagarlo:

digitalWrite(ledPin, LOW); // pone el estado del pin a Apagado
 
que hablando de voltajes, sería conectarlo a tierra o a 0 Voltios.

Esto que hemos hecho con un pin de salida, OUTPUT, también lo podríamos hacer para los pines digitales en modo entrada, INPUT.  Podríamos definir que el pin 12, por ejemplo, se quedara “escuchando” y según si escucha algo o no, activara un sistema de alarma.

Si usábamos el pin 12 y decidimos que configurarlo como entrada, lo haríamos en el bloque de configuración de nuestro sketch, declarando el pin que íbamos a usar como INPUT (entrada).

void setup()
{
  pinMode(12, INPUT); // declara el pin digital 12 como de entrada


}

Entonces cada vez que le llegaran 5 voltios, se pondría a HIGH (Alto) y cuando se pusiera a 0 voltios, o conectado a tierra, se pondría a LOW (bajo). Es el lenguaje digital.

Es el más simple que podamos definir, es como si la bombilla solo pudiera estar apagada o encendida, los colores fueran blancos o negros, los números fueran 0 ó 1…

Pero aunque el lenguaje sea simple, nuestro circuito electrónico puede necesitar algo más. Porque ¿cuándo el murmullo se convierte en silencio?, ¿Cuándo el murmullo se convierte en grito?. Al igual que pasa cuando hablamos, las señales electrónicas siempre llevan su parte de ruido de fondo, y esto puede hacer que las cosas no sean lo que parecen.

Antes habíamos imaginado que el pin 12 era una entrada que “escuchaba”, ahora imaginémosla físicamente como la entrada a una casa.

Considere la posibilidad de una puerta de una casa, con bisagras muy lisas, y sin pestillo. Una puerta tan ligera y tan bien articulada que la más leve brisa hace que se abra o que quede cerrada.

Ahora agreguemos una puerta un mecanismo automático de cierre. El resorte mantendrá la puerta cerrada, pero no firmemente: Un suave empujón permitirá abrirla, y luego hacer que se cierre sola.


La llamada "entrada flotante" es como nuestra puerta, la más mínima perturbación, como la brisa arriba, hará que la entrada para cambiar aleatoriamente entre abierto y cerrado (bajo y alto).

Al igual que con nuestra puerta, a la que podríamos ponerle un mecanismo para que se cerrara tras el empujón, o bien un mecanismo que la mantuviera siempre abierta, a pesar de que puntualmente alguien la cierre.  Con nuestro circuito podemos hacer justo lo mismo usando Resistencias Pull-Up o Resistencias Pull-Down.

Son resistencias normales, solo llevan el nombre pull up por la función que cumplen.  Las resistencias pull-up puede ser cualquier resistencia. Lo importante es que está conectada entre la señal y la fuente de alimentación lógica. Los rangos comunes de resistencias de pull-ups pueden ser de 1k ohm a 100k ohms, pero depende de la familia lógica de tu microcontrolador



Se podría decir que normalmente se llaman resistencias pull up a resistencias que en general se conectan entre una señal lógica y el positivo y su función es asegurar que esa señal no quede en un estado “flotante”.

En la siguiente entrada veremos el valor de ellas en un ejemplo en el que usamos un pulsador en el circuito de nuestro Arduino.

No hay comentarios:

Publicar un comentario