Publicado el Deja un comentario

44. Mostrar temperatura

Hoy vamos a interactuar con el mundo real tomando datos de la temperatura gracias a un sensor TMP36 y mostrando este valor en el monitor serie de Arduino.

Material necesario

  • Sensor TMP36
  • 5 cables M-M

Montaje del circuito

Es extremandamente sencillo el montaje de este circuito, mira la lección del sensor de temperatura TMP36 y monta el circuito tal y como viene explicado allí.

Sketch “Sensor de temprearura.ino

Quiero que te fijes muy atentamente en la diapositiva y copies el sketch a tu IDE de Arduino y le des el nombre “Sensor-de-temperatura.ino“. Una vez hecho analicemos las tres partes del sketch.

  • En la primera parte declarativa creamos una variable llamada val que almacenará el valor leído por el pin analógico A0 y posteriormente declararemos la variable temp que nos servirá para manipular el valor val y convertirlo a un valor en grados centígrados (o Celsius) para luego ser mostrado en el monitor serie.
  • En la parte de configuración setup() sólo necesitaremos abrir el puerto serie como vimos ayer.
  • En la parte del bucle loop() realizaremos la lectura puntual de la temperatura con la función analogRead(0) y la mostraremos en el monitor serie con la función Serial.print().

El resultado de ejecutar este programa será la toma de temperatura continua y su muestra en la pantalla del ordenador gracias al monitor serie. De forma puramente didáctica se muestran dos valores por línea, el valor leído por el sensor TMP36 y su conversión a grados centígrados.

val = analogRead (0);

Esta línea de código sirve para recibir en la variable val la lectura de la pata 2 del sensor de temperatura al pin A0 de Arduino. Como es una lectura analógica su valor sabemos que estará en el rango 0-1023.

temp = (val/1024.0) * 5.0;
temp = (temp-0.5) * 100;

En estas líneas del sketch hacemos un mapeo del rango 0-1023 de entrada al rango de temperaturas del sensor, un rango más extenso que el que proporciona el sensor, pero que encaja para que muestre los resultados correctamente con un pequeño margen de error.

Puedes obtener información adicional del datasheet (hoja de datos) del fabricante del sensor.

¿Cuál es la diferencia entre las funciones Serial.print() y Serial.println()?


Publicado el Deja un comentario

42. Sensor de temperatura TMP36

Ahora las cosas se empiezan a poner interesantes, vamos a incorporar un sensor que nos permitirá captar datos del mundo analógico (en el que vivimos) y transmitirlo al mundo digital, al que podemos acceder gracias a Arduino (no es Matrix).

Sensor de temperatura TPM36

Se trata de un sencillo y barato sensor con un encapsulado similar al de los transistores, con tres pines numerados 1, 2 y 3 de izquierda a derecha según lo ves en la imagen con las siguientes funciones:

  • Pin 1: Pin de alimentación, hay que conectarlo al pin 5V de Arduino (en realidad lo podemos conectar a una fuente externa de CC de entre 2.7 y 5,5 V
  • Pin 2: Pin captador de la señal leída, nos da la temperatura en forma de voltaje
  • Pin 3: Pin de tierra, hay que conectarlo a un pin GND de Arduino

Nota importante: En adelante, procura que todas las tierras de tus proyectos estén conectadas entre sí. No sería la primara vez que me falla un proyecto por esta pequeñez.

La conexión a Arduino se hace conectando la pata central a cualquiera de las seis entradas analógicas de Arduino, de manera que en cada ciclo del bucle de Arduino (loop) vamos a utilizar la función analogRead() que nos devolverá un valor entero entre 0 y 1023 correspondiente a un valor de voltaje entre 0 y 5 V y que se corresponden asimismo a un valor de temperatura entre -40 ºC y 125 ºC en el modelo TMP36. Para hacer esta conversión de escalas, lo más sencillo es utilizar la conocida función map() o si queremos evitarla, hacer una conversión con operaciones matemáticas.

En las próximas lecciones vamos a implementar un proyecto de lectura y muestra de temperaturas, pero antes tienes que conocer el monitor serie del IDE de Arduino en la próxima lección.

Ve haciéndote con un sensor TMP36, y si no lo encuentras, podrás salir al paso con un sensor de temperaturas TMP35.