Lectura de un sensor con salida analógica

Abre el entorno de programación de Arduino y en la ventana que se abre sustituye la plantilla que aparece por el programa que está a continuación (otra manera de crear un archivo nuevo es escogiendo la opción New en el menú File). Cópialo todo con cuidado, fíjate que no falte ningún paréntesis, llave o punto y coma, y utiliza exactamente las mismas mayúsculas y minúsculas. Esto es muy importante, ya que si no lo haces vas a obtener un error de compilación. Por otro lado, los espacios o líneas en blanco no importan.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(0);
  Serial.println(sensorValue);
  delay(1000);
}

Antes de seguir adelante, veamos qué quieren decir estas líneas de código.

void setup() {

Esta es la cabecera de la función setup. void se refiere al tipo de valor devuelto por la función, pero por ahora su significado no es importante, así que simplemente escríbelo tal cual. Los paréntesis después del nombre de la función son obligatorios aunque estén vacíos, así que no los olvides. La llave de apertura indica el inicio del cuerpo de la función.

Serial.begin(9600);

Esta es la primera (y única) instrucción de nuestra función setup. En ella se inicializa la comunicación entre la placa Arduino y el monitor serie. El monitor serie no es más que una ventana que se abre en el IDE de Arduino para poder leer en el ordenador los datos enviados por Arduino. La velocidad de comunicación más habitual es 9600 baudios, o bits de datos por segundo, así que ponemos ese valor como argumento de la función Serial.begin. Como todas las instrucciones en Arduino, termina con un punto y coma.

}

La llave de cierre indica que la función setup ha terminado. Ahora el programa pasa a la siguiente instrucción.

void loop() {

El programa entra en la función loop. Esta instrucción es la cabecera de la función.

int sensorValue = analogRead(0);

En la primera instrucción de la función loop estamos usando una función muy habitual cuando trabajamos con sensores: analogRead. Esta función lee la señal recibida en el pin de Arduino especificado y devuelve su valor, que es un número entero entre 0 y 1023. En este caso analogRead(0) lee la señal que recibe el pin 0, que es precisamente el pin al que hemos conectado el sensor de temperatura. Así podemos leer el valor que mide el sensor. Sencillo, ¿no?

Como este valor lo vamos a necesitar más adelante en el programa, tenemos que almacenarlo en algún sitio. Para ello utilizaremos una variable. Una variable no es más que un espacio en memoria al que le damos un nombre y donde almacenamos un valor. A nuestra variable la llamamos sensorValue, y al escribir sensorValue = analogRead(0) estamos asignando a dicha variable el valor devuelto por analogRead(0). De esta manera podemos usar el nombre sensorValue cada vez que deseemos acceder al valor medido por el sensor.

Cuando declaramos una variable es necesario indicar el tipo de valores que va a contener. Como hemos dicho antes, la función analogRead devuelve un valor entero. Por tanto, debemos ponemos la palabra int antes del nombre de la variable sensorValue para indicar que en la variable sensorValue se van a almacenar valores enteros.

Serial.println(sensorValue);

La instrucción Serial.println muestra datos en el monitor serie para que podamos leerlos en el ordenador. En este caso presenta el valor de la variable sensorValue creada en la instrucción anterior.

delay(1000);

La función delay para la ejecución del programa durante el tiempo especificado en milisegundos, así que delay(1000) le dice al programa que espere un segundo (1000 milisegundos) antes de ejecutar la instrucción siguiente.

}

La llave de cierre de la función loop funciona de manera diferente que la de la función setup. Aunque también indica que la función ha terminado, en este caso la ejecución del programa no pasa a la siguiente instrucción, sino que vuelve a la instrucción inicial de la función loop. En consecuencia, el cuerpo de la función loop se ejecuta de nuevo, y una vez más, y otra, y otra... Guarda el programa y ya estamos listos para pasar al siguiente paso.

Last updated