5. ¿Analógico o digital?

Los pines analógicos

En nuestra placa Arduino disponemos de 6 pines que permiten leer valores analógicos. Los valores analógicos son aquellos que nos da la vida real. Un ejemplo es la temperatura. La temperatura es un número continuo que no tiene estados ni pausas, puedes tener 30.1ºC o -4.6ºC.

Los digitales son los contrarios, los que solamente tienen dos estados como un sí o un no. Son los pines del 0 a 13. El ejemplo típico es un LED que está encendido o apagado o un pulsador que está presionado o sin pulsar. Son los que hemos venido usando en los cuatro primeros retos.

Con estos pines analógicos puedes medir los valores de la naturaleza. Pero claro, tu no metes un sensor de temperatura y Arduino te dice: Tienes 10.78ºC en tu habitación. No, Arduino te da un número de 0 a 1023… ¿Por qué esta locura?

Porque realmente lo que contienen esos pines es lo que se llama un ADC. ¿Un qué? Un Analog-Digital Converter. Eso son unos chips que convierten los valores analógicos en valores digitales que son con los que trabajan las placas electrónicas.

Una de las cosas más importantes de los ADC es lo que llaman la resolución. En el caso de Arduino son 10 bits. Esto significa que hay 10 bits con los que toda la información se tiene que representar. 10 bits son 2 elevado a 10, que son 1024 (Por eso lo de 0 a 1023). Con estas 1024 posiciones hay que representar el rango de valores que podemos medir con el sensor.

En realidad lo que detectamos es el voltaje que hay en el pin analógico, es decir, que dividimos los 5 Voltios (el máximo que puede entrar en Arduino sin quemarse) en 1024 partes de 0.0048 Voltios. Este es el mínimo cambio que se puede medir. Si la magnitud real de un sensor (por ejemplo de temperatura) cambiase tan poco que el cambio fuese de 0.003 Voltios, Arduino no se enteraría del cambio.

Este es el uso más común de los pines analógicos, el de medir magnitudes continuas como cantidad de luz, ruido, nivel de agua, caudal de una tubería, etc

Los pines analógicos A0...A5 son siempre de entrada.

Adaptado de la fuente: Rufián en la red

Conexión de sensores analógicos

Supongamos que dispongamos un sensor que proporciona una señal analógica entre 0V a 5V. El esquema de conexión es similar al que empleamos para realizar la lectura digital.

EL POTENCIÓMETRO, EL SENSOR ANALÓGICO MÁS BÁSICO

Un potenciómetro es una resistencia de un valor fijo entre sus extremos 1 y 2, pero además, tiene un terminal (3) que puede moverse a través de la resistencia. Este terminal móvil se denomina normalmente cursor o wiper. Se representa mediante el siguiente símbolo:

Según vayamos girando el cursor a través de la resistencia tendremos diferentes valores de voltaje en el cursor.

En el esquema de la derecha, si movemos el cursor a la izquierda, Vout=Vcc. Si movemos el cursor a la derecha, Vcc=0V porque estará conectado a GND.

MAPEAR VALORES

En la mayor parte de las ocasiones, queremos traducir las 1024 posiciones posible que se pueden leer por el pin analógico en otro rango, por ejemplo, un porcentaje o un valor del 1 al 10.

En este bloque estamos convirtiendo proporcionalmente el valor obtenido por el pin analógico A0 a un valor entre 0 y 10

Esquema de montaje

Conectaremos un potenciómetro a la placa. El cursor (wider) va conectado a la entrada analógica A0, mientras que los dos terminales fijos irán conectados a 5V y GND.

Conectamos también un LED en el pin 13 con su correspondiente resistencia.

Guía de programación

Vamos a mostrar por el monitor serie el valor del pin analógico A0 cada medio segundo pero vamos a convertir el rango de lecturas de 0 a 1023 en un valor porcentual de 0 a 100 para mostrarlo por el monitor serie.

ACTIVIDADES

1

Realiza el montaje de la guía de programación. Mueve el potenciómetro desde un tope al otro. Abre el monitor serie y observa como cambian los valores según vas girando el potenciómetro ¿Funciona como esperas? En qué posición obtienes 0? ¿En qué posición obtienes 100?

2

A partir del programa anterior, guarda el valor obtenido por el pin A0 en una variable que llamaremos "porcentaje" antes de mostrarlo por el monitor serie. Mostraremos por el puerto serie el valor de la variable "porcentaje".

3

Programamos el led para que el tiempo de espera encendido y de apagado sea determinado por la posición potenciómetro. Tendrás que mapear el valor del pin A0 y guardarlo en una variable llamada "tiempo" para que cuando el potenciómetro esté al máximo el tiempo de parpadeo del LED sea de 2000 ms.

IMPORTANTE: Elige el bloque de espera en milisegundos.

Recuerda que para pasar al siguiente reto debes completar la memoria con las capturas de pantalla del programa y el montaje; y las respuestas a las preguntas de cada actividad.

No es necesario incluir las capturas de pantalla de los programas que vienen en la guía de programación.