huborarduino.com

La web de Hubor para la simulación de Arduino con Proteus

Banner Guia Programacion Arduino Con Proteus

[Proteus versión 8.1]

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 podía conocer el estado de determinados dispositivos que sólo eran capaces de discernir entre dos estados: activo-desactivo (abierto-cerrado, conectado-desconectado, verdadero-falso, etc). El ejemplo más 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, células fotoeléctricas, detectores de proximidad, detectores de presión, 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 depósito, el voltaje de una fuente de alimentación, son algunos ejemplos. Para que nuestro Arduino pueda conocer estos valores utilizamos las entradas analógicas.

El esquema de funcionamiento de una entrada analógica es el siguiente. El transductor convierte una determinada magnitud física (distancia, calor, caudal, etc) en una magnitud eléctrica (tensión o corriente). El transductor se conecta a uno de los pines de entrada analógica de nuestro Arduino. Como las entradas analógica del Arduino sólo son capaces de leer valores de tensión comprendidos entre 0 y 5V, si el transductor suministrara otros valores diferentes necesitariamos poner entra la salida del transductor y la entrada analógica un conversor adecuado. Por último, el microprocesador incluido en nuestro Arduino dispone de una unidad de conversión analógico-digital que convierte los valores de tensión de la entrada en valores numéricos comprendidos entre 0 y 1023. El número 1023 no es una casualidad. Los conversores incluidos en el micro tienen una precisión 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 solución completa compleja.

Lec05 001

El termómetro (transductor) situado en el horno nos devuelve valores de corriente comprendidos entre 4 y 20mA. Cuando la temperatura es de -20°C devuleve 4mA y cuando al temperatura es de 200°C devuleve 20mA. Por eso necesitamos utilizar un conversor que pase de 4-20mA a 0-5V. Por último el conversor analógico-digital del Arduino nos devolverá valores comprendidos entre 0 (cuando la temperatura sea de 0°C) y 1023 (cuando la temperatura sea de 200°C). Conocer a qué temperatura corresponde un determinado valor que nos proporciona Arduino es sólo una cuestión de utilizar una regla de tres.

Arduino dispone de seis entradas analógicas conectadas a los pines 23 a 28 y que reciben los nombres ADC0 - ADC5.

Para poder probar una entrada analógica, la forma más sencilla es utilizar un potenciómetro haciendo las veces de un divisor de tensión. De esta manera, si conectamos un extremo a los 5V y el otro a GND obtendremos los diferentes valores posibles moviendo el potenciómetro. Veamos el esquema electrónico del montaje para esta lección donde utilizaremos el terminal virtual que vimos en la lección 4 y el montaje del potenciómetro para simular valores de tensión en la entrada analógica (en la zona inferior derecha del montaje).

Lec05 002

La función que nos permite recuperar el valor leído en un pin de entrada analógico 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 código de nuestro programa es el siguiente:

Lec05 003

El funcionamiento es muy simple. Leemos el valor de la entrada analógica 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 simulación y movemos el potenciómetro iremos obteniendo los valores calculados entre 0 y 1023 en nuestro terminal virtual.

Lec05 004

Utilizar entradas analógicas es muy sencillo con Arduino. 

Veamos otro ejemplo de utilización de entradas analógicas donde Arduino toma decisiones en funicón de los valores leídos en una entrada digital. Supongamos el ejemplo de configuración 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 código de nuestro programa sería el siguiente:

Lec05 005

Como se puede ver el programa es muy sencillo. Cuando la lectura analógica 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 termómetro con un potenciómetro. La simulación se muestra a continuación. Moviendo el potenciómetro simulamos la temperatura y cuando se alcanza el valor adecuado se activa o desactiva la salida y se enciende o apaga el led.

Lec05 006

Lec05 007

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

 

Comparte este artículo en redes sociales

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedIn


Esta página es propiedad de Hubor.

2014.

¡Atención! Este sitio usa cookies y tecnologías similares. Si no cambia la configuración de su navegador, usted acepta su uso. Ampliar información