You are on page 1of 7

Leccin 5: Entradas analgicas

Hasta este momento hemos visto que nuestro Arduino era capaz de saber lo que pasaba a su
alrededor utilizando las entradas digitales. De esta manera poda conocer el estado de
determinados dispositivos que slo eran capaces de discernir entre dos estados: activo-desactivo
(abierto-cerrado, conectado-desconectado, verdadero-falso, etc). El ejemplo ms sencillo
consiste en determinar si un interruptor estaba abierto o cerrado, pero existen muchos otros
dispositivos disponibles que reciben el nombre de transductores (finales de carrera, clulas
fotoelctricas, detectores de proximidad, detectores de presin, etc).
Hay muchos otros casos en los que necesitamos saber el valor de una determinada magnitud. La
distancia a un determinado lugar, la temperatura de un horno, el nivel de agua de un depsito, el
voltaje de una fuente de alimentacin, son algunos ejemplos. Para que nuestro Arduino pueda
conocer estos valores utilizamos las entradas analgicas.
El esquema de funcionamiento de una entrada analgica es el siguiente. El transductor convierte
una determinada magnitud fsica (distancia, calor, caudal, etc) en una magnitud elctrica
(tensin o corriente). El transductor se conecta a uno de los pines de entrada analgica de
nuestro Arduino. Como las entradas analgica del Arduino slo son capaces de leer valores de
tensin comprendidos entre 0 y 5V, si el transductor suministrara otros valores diferentes
necesitariamos poner entra la salida del transductor y la entrada analgica un conversor
adecuado. Por ltimo, el microprocesador incluido en nuestro Arduino dispone de una unidad de
conversin analgico-digital que convierte los valores de tensin de la entrada en valores
numricos comprendidos entre 0 y 1023. El nmero 1023 no es una casualidad. Los conversores
incluidos en el micro tienen una precisin de 10bits. Los valores posibles que se pueden obtener
con 10 bits van de 0 a 1023. En la imagen siguiente se muestra un esquema de una solucin
completa compleja.

El termmetro (transductor) situado en el horno nos devuelve valores de corriente comprendidos


entre 4 y 20mA. Cuando la temperatura es de -20C devuleve 4mA y cuando al temperatura es
de 200C devuleve 20mA. Por eso necesitamos utilizar un conversor que pase de 4-20mA a 0-5V.
Por ltimo el conversor analgico-digital del Arduino nos devolver valores comprendidos entre 0
(cuando la temperatura sea de 0C) y 1023 (cuando la temperatura sea de 200C). Conocer a
qu temperatura corresponde un determinado valor que nos proporciona Arduino es slo una
cuestin de utilizar una regla de tres.

Arduino dispone de seis entradas analgicas conectadas a los pines 23 a 28 y que reciben los
nombres ADC0 - ADC5.
Para poder probar una entrada analgica, la forma ms sencilla es utilizar un potencimetro
haciendo las veces de un divisor de tensin. De esta manera, si conectamos un extremo a los 5V
y el otro a GND obtendremos los diferentes valores posibles moviendo el potencimetro. Veamos
el esquema electrnico del montaje para esta leccin donde utilizaremos el terminal virtual que
vimos en la leccin 4 y el montaje del potencimetro para simular valores de tensin en la
entrada analgica (en la zona inferior derecha del montaje).

La funcin que nos permite recuperar el valor ledo en un pin de entrada analgico se llama
analogRead(). Su formato es:
<valor devuelto entre 0 y 1023> = analogRead( <numEntradaAnalogica>)
Donde numEntradaAnalogica es un valor comprendido entre 0 y 5.
El cdigo de nuestro programa es el siguiente:

El funcionamiento es muy simple. Leemos el valor de la entrada analgica 0 (la que se conecta
en el pin AD0) y enviamos el valor al terminal virtual. Esperamos un segundo y volvermos a
repetir el proceso. La espera de un segundo la hacemos con objeto de no estar enviado
constantemente valores al terminal lo que dificulta mucho la lectura. Si ejecutamos la simulacin
y movemos el potencimetro iremos obteniendo los valores calculados entre 0 y 1023 en nuestro
terminal virtual.

Utilizar entradas analgicas es muy sencillo con Arduino.


Veamos otro ejemplo de utilizacin de entradas analgicas donde Arduino toma decisiones en
funicn de los valores ledos en una entrada digital. Supongamos el ejemplo de configuracin de
nuestro horno que vimos antes. Imaginemos que deseamos que nuestro Arduino mantenga el
horno encendido hasta alcanzar una determinada temperatura. Al hacerlo pararemos el horno.
Cuando la temperatura vuelva a bajar, nuestro Arduino volver a encender el horno. De esta
forma podemos mantener nuestro horno a una temperatura constante.
El cdigo de nuestro programa sera el siguiente:

Como se puede ver el programa es muy sencillo. Cuando la lectura analgica es menor que 300
se activa la salida digital y en caso contrario se apaga. Para comprobar el funcionamiento,
simularemos la salida que acitva el horno con un led y la entrada del termmetro con un
potencimetro. La simulacin se muestra a continuacin. Moviendo el potencimetro simulamos
la temperatura y cuando se alcanza el valor adecuado se activa o desactiva la salida y se
enciende o apaga el led.

Ya somos capaces de utilizar entradas digitales en nuestro equipo Arduino.

You might also like