Introducción. Entradas analógicas en arduino

El uso de una placa arduino implica por un lado recoger datos del exterior: obtener las entradas. Estas se procesan y la placa genera órdenes: son las salidas. Existe un tipo de entradas especiales por su características: las entradas analógicas en arduino, de las que vamos a hablar en breve.

Entradas, proceso y salidas. Las entradas proceden de sensores. Las salidas van hacia los actuadores. Así se podría resumir la robótica educativa.

Una entrada analógica procede de un sensor que mide una magnitud que cambia de forma continua. La variación de la propiedad que medimos produce una variación de tensión en un contacto de la electrónica del sensor entre 0 y 5V. Conectamos este contacto a una entrada analógica de arduino. Los pines de entradas analógicas del A0 al A5.

Arduino cambia una señal continua entre 0 y 5 voltios a un conjunto de números, en concreto, transforma la señal entre 0 y 5V en números enteros entre 0 y 1023.

Sólo tenemos que cablear la salida del sensor (que deberá estar conveniente alimentado) a la entrada A0. Vamos a ver cómo se hace esto en varios sensores.

Todos ellos miden «algo» y transforman esa medida en una señal entre 0 y 5V. Después, arduino, transforma esa señal en números. Para ello, debemos utilizar dentro de nuestro programa la instrucción:

int medida=analogRead(A0);

En ‘medida’ tendremos 0 (cero) si en A0 hay 0V y 1023 si en A0 hay 5V. Los valores intermedios serán proporcionales. Recordemos que si utilizamos programación gráfica no será necesario escribir código, solo insertar los bloques adecuados. Ver más adelante en esta entrada.

El potenciómetro

Es el sensor analógico más sencillo. Es una resistencia variable que tiene 3 patas. Dos de ellas se conectan a tierra (0V) y a tensión (5V) respectivamente y la pata central se conectará a la entrada analógica A0. En electricidad esta conexión del potenciómetro se llama divisor de tensión.

En la fotografía que encabeza el artículo vemos un modelo de potenciómetro. Mediante un destornillador se puede controlar la resistencia y, por tanto, el voltaje que aparecerá en la pata central. La conexión de un potenciómetro en la entrada analógica A0 de la placa de arduino se hace según la figura:

Entradas analógicas en arduino

El sensor de medida de luz. LDR

Cuando nos interesa ver el nivel de luz de una sala, por ejemplo, para bajar automáticamente una persiana o toldo, usamos sensores de intensidad luminosa.

Entradas analógicas en arduino

Se trata en este caso de una fotorresistencia (LDR): una resistencia que varía su valor en función de la luz que incide sobre ella. Es otro divisor de tensión. En este caso no somos nosotros los que hacemos variar la resistencia sino la luz ambiente.

La conexión de la fotorresistencia requiere una resistencia de 10 kΩ. La fotorresistencia puede venir montada en una placa con tres patas que incorpora la resistencia y solamente hay que cablearla a la placa.

No es el caso de la fotografía y del siguiente esquema de conexión en el que debemos instalar la resistencia:

Entradas analógicas en arduino

El sensor de humedad de tierra

Si tienes un jardín, estoy seguro de que este sensor te va a interesar: lo clavas en la tierra y te da información de su humedad. Es inmediato ver la utilidad de este dato para poner en marcha una bomba, si la tierra está muy seca.

Entradas analógicas en arduino

En este caso, conectamos el sensor a alimentación y tierra y en una de sus patas contamos con una señal analógica que nos proporciona la tensión variable. Este sensor cuenta, además, con una pata que proporciona una entrada digital, para activar algún mecanismo cuando se llega a una cierta humedad.

Así se debe conectar este sensor:

 

entradas analógicas en arduino

El sensor de humedad también proporciona una entrada analogica

El sensor de nivel de agua

Es muy útil para detectar el nivel de agua en un depósito, por ejemplo.

Entradas analógicas en arduino

Por tanto, este sensor es muy parecido al anterior. En función de la superficie que tiene cubierta de agua, va a proporcionar una tensión variable, que cableamos a nuestra placa de arduino. El conexionado es similar al del anterior sensor (la pata S conectada a A0).

Vemos que existe una amplia gama de sensores que nos proporcionan entradas analógicas en arduino. Sólo hemos expuesto algunos ejemplos.

El código

El siguiente código es válido para cualquiera de los los cuatro montajes simples que hemos mostrado:

int sensor = 0;
void setup() {
Serial.begin(9600);//Para poder ver el dato en pantalla }
void loop() {
  sensor=analogRead(A0);//sensor será un número entre 0 y 1023
  Serial.println(sensor);
  delay(500); 
}

Como vemos, el código no es complicado. No obstante, si nos parece ‘pesado’ teclearlo, podemos hacer uso de varias utilidades de programación gráfica, por ejemplo, visualino. Veamos cómo quedarían los bloques:

Entradas analógicas en arduino

Código de bloques válido para las entradas analógicas vistas

Como vemos, visualino genera automáticamente una inicialización de la entrada analógica, lo que no es necesario. Arduino entiende mediante analogRead que debe leer una señal analógica en el pin indicado.

Conclusiones

Considerando todo lo expuesto, el mismo programa nos sirve para adquirir valores de numerosos sensores existentes en el mercado.

Como hemos visto, el dato obtenido de las entradas analógicas en arduino siempre es un número entre 0 y 1023 que después, de acuerdo con sencillas operaciones, podemos interpretarlos como humedad, intensidad luminosa, temperatura, etcétera.

Para acabar, cabe señalar que la placa de arduino no permite salidas analógicas, que varíen de 0 a 5V por ejemplo. Sin embargo, permite simular estas salidas analógicas a través de la salidas PWM que en la placa de arduino aparecen con el símbolo ~.

Pero eso será objeto de otra entrada.

(Fotografía de portada: Federico Arroyo)