Podcast: Descargar (28.0MB)
Quizás el siguiente paso después del hola mundo en Arduino, el típico blink, sea medir la temperatura con un sensor. En los kits más utilizados ya sean originales o no originales, siempre viene un sensor de este tipo. Pero cuando vas a realizar un proyecto para crear un dispositivo totalmente funcional, debemos escoger el mejor sensor de temperatura para Arduino.

En el Campus ya estamos trabajando con uno de ellos, el LM35, del cual hablaremos en este capítulo. En el curso donde se integra con un Arduino MKR1000 para poder ser leído a través de una página web, he optado por hacerlo lo más modular posible y así poder quitar y poner cualquier otro sensor sin ningún tipo de problema.
Indice de contenidos
Una de las cosas que repito por activa y por pasiva es que, aunque la teoría es buena conocerla y un buen punto de partida, nada se puede comparar con la práctica.
Sensor de temperatura, tipos
Los sensores de temperatura se utilizan para eso, para medir la temperatura del entorno. Aunque todos ellos funcionan de una manera similar, hay pequeños detalles que los hacen diferentes. Precisamente esa va a ser la base para poder elegir uno u otro, esas pequeñas diferencias nos harán escoger el mejor sensor de temperatura para nuestros proyectos con Arduino o cualquier otro microcontrolador.

Las aplicaciones de este tipo de sensores son muchas, desde una simple estación meteorológica hasta un sistema de alarma capaz de detectar la presencia de un ser vivo. Voy a clasificar los diferentes sensores en tres tipos dependiendo de a quien va dirigido.
- Sensores para aficionados
- Sensores para automatizaciones
- Sensores con características especiales
No hay que decir que según vamos subiendo en prestaciones y funcionalidades, el coste crece exponencialmente. Aunque hablaré de todos los tipos según su clasificación, me voy a centrar en los más usados que son los sensores para aficionados.
Parámetros de evaluación de un sensor de temperatura
Debemos tener claros en que parámetros debemos fijarnos a la hora de comprar un sensores, da lo mismo que sea de temperatura u otro tipo de sensor, los parámetros son siempre los mismos.
- Sensibilidad: podemos definir como la cantidad mínima que el sensor será capaz de medir y por lo tanto, modificará la salida. Si ponemos el ejemplo de un sensor de temperatura, la sensibilidad será cuantos grados es capaz de detectar para que modifique la salida en voltios.
- Rango de valores: son los valores máximo y mínimo que es capaz de medir el sensor. En nuestro caso tendremos una temperatura mínima y una temperatura máxima. Dependerá de las condiciones físicas del propio sensor.
- Precisión: en términos coloquiales podemos decir que es el error que se produce entre el valor real y el valor obtenido. Por ejemplo, si tenemos la certeza de que la temperatura es de 25º C y medimos con el sensor, la desviación obtenida con el sensor nos dará la precisión ± Xº C.
- Resolución: si ya hemos visto la sensibilidad que nos indica la capacidad de detectar un cambio en la entrada, la resolución es igual pero en la salida. Será el cambio mínimo detectable en la señal de salida. En nuestro caso, dependerá de la resolución de la entrada al microcontrolador en sensores analógicos y del propio sensor en sensores digitales.
- Tiempo de respuesta: los sensores no cambian su estado de salida inmediatamente. Para que cambie la salida con respecto a una entrada debe pasar un tiempo y a este tiempo se le llama el tiempo de respuesta. Por lo tanto será el tiempo necesario para que cuando se produzca un cambio en la entrada este produzca un cambio en la salida. Se suele medir en % es decir, cuanto tiempo tarda en producirse un % de la variación.
- Offset: este parámetro lo ideal es que sea cero y en muchos sensores los encontramos. Es un factor de corrección que debemos de tener en cuenta a la hora de hacer nuestros cálculos. Se puede resumir como el valor de salida que tenemos cuando debería ser cero.
Sensores de temperatura para aficionados
Este tipo de sensores son los más baratos y los que podemos encontrar en los diferentes kits de iniciación con Arduino. Seguramente tengas alguno por casa. Aunque son diferentes, todos tienen algo igual, no pueden ser puestos a pleno sol. Mucho ojo con esto ya que estropearía el sensor. Elegir uno u otro dependerá del uso que queramos darle.
Suelen ser utilizados para proyectos caseros de robótica y atomatización del hogar. Tienen una interfaz muy sencilla, son precisos y un tiempo de respuesta rápido. Solo tienes que ponerlo debajo de una bombilla y comprobarás como empieza a subir la temperatura.
En estos son en los que más me voy a centrar porque son los que más comunes y los que más vamos a utilizar. En total son 5 sensores que analizaremos al detalle.
#1. Sensor temperatura Arduino LM35
Ya hemos hablado mucho en este blog, en el Campus y en el podcast de este sensor. Sin duda alguna es el más conocido por todos nosotros. Esto es debido a que es el sensor más barato del mercado, puedes comprar 10 por un poco más de 7€.

Está calibrado directamente en grados Celsius (centígrados) y no debemos hacer ningún tipo de conversión ni de calibración externa. La salida es analógica y la mediremos con una entrada analógica de Arduino.
El gran problema de este sensor es que realmente solo podemos medir temperaturas entre 2º C y 150º C a no ser que utilicemos voltajes negativos. Es las especificaciones técnicas viene bien detallado. Esto es un problema cuando trabajamos con Arduino ya que la placa no suministra voltajes negativos y debemos utilizar algún circuito externo para conseguir este rango de tensiones. Puedes encontrar otro tipo de soluciones en Internet pero lo único que vas a conseguir es que se pierda la linealidad en la temperatura y por lo tanto obtendrás valores erróneos. La solución es alimentar con un voltaje negativo o utilizar otro tipo de sensor.
Las aplicaciones típicas de este sensor son:
- Fuentes de alimentación
- Gestión de baterías
- Accesorios
- Climatización
Voltaje de operación: de 4 V a 30 V
Rango de temperaturas: -55º C a 150º C
Precisión: ±0,5º C
Conversión: 10 mV / ºC
Tiempo de respuesta (100%): 4 min.
Offset: 0 V
Hoja de características técnicas
Para ver cómo configurar este sensor mira el artículo donde te lo explicamos todo.
#2. Sensor temperatura Arduino TMP36
Este sensor es algo más caro, su precio ronda los 2,5€ pero si le sumas los gastos de envío, los encuentras por casi 6€.

Es muy parecido a el LM35 la gran diferencia entre los dos es que en el TMP36 podemos medir temperaturas bajo cero sin necesidad de suministrar una voltaje negativo. Este sensor ya viene preparado para este rango.
Dos factores a tener en cuenta son el voltaje de operación, no podremos alimentar con una pila de 9 V en este caso y la precisión que se va a los 2º C.
Voltaje de operación: de 2,7 V a 5,5 V
Rango de temperaturas: -40º C a 150º C aunque a partir de los 125ºC ya no es lineal
Precisión: ± 2º C
Conversión: 10 mV / ºC
Tiempo de respuesta (100%): 8 min.
Offset: 0.5 V
Hoja de características técnicas
Para ver los modos de funcionamiento y la programación puedes acceder al artículo del Campus.
#3. Sensor temperatura Arduino TC74
Hasta aquí, lo dos sensores anteriores estábamos hablando de sensores analógicos. Este tipo de sensores tiene un problema, son más sensibles al ruido que los sensores digitales como el TC74, del que vamos a hablar ahora mismo.

Este sensor de temperatura lo podemos encontrar en un pack de 5 por unos 25€, sale cada uno a unos 5€ con gastos de envío incluidos.
Es un sensor de temperatura digital especialmente adecuado para aplicaciones de bajo coste. Es capaz de convertir la temperatura dentro del propio sensor y se transmite a través de un palabra digital de 8-bit.
La comunicación con el sensor se hace con el protocolo I2C compatible con el puerto serie. Cuando adquieres un sensor de este tipo, vienen una numeración escrita en el mismo sensor. Aquí nos va a indicar la dirección a la que tenemos que apuntar desde nuestro Arduino. Te recuerdo que el protocolo I2C requiere de estos identificadores únicos para poder comunicar entre estos dos dispositivos. En concreto, podemos utilizar hasta ocho sensores TC74 a la vez con nuestro Arduino. En la hoja de características técnicas puedes encontrar la dirección de tu sensor.
Existen de dos tipos. Por un lado los que funcionan a 3,3V y los que funcionan a 5V. Aunque cualquiera de los dos puede funcionar con el rango que marca la hoja de características técnicas, también nos avisa que si el varía del valor nominal, la precisión puede degradarse 1ºC/V.
Lo puedes comprobar fácilmente alimentando un TC74 de 3,3V con 5V o al revés, verás la diferencia.
Voltaje de operación: de 2,7 V a 5,5 V
Rango de temperaturas: -40º C a 125º C
Precisión: ± 2º C de 25º C a 85º C y ± 3º C de 0º C a 125º C
Resolución: 8-bit
Muestras/segundo: 8
Hoja de características técnicas
#4. Sensor temperatura Arduino DHT11
Lo primero que hay que decir de este sensor es que es digital y además incorpora un sensor de humedad y precisamente esta es la gran diferencia con el resto de sensores que hemos visto hasta ahora.

Podemos encontrar el DHT11 de dos maneras diferentes. Por un lado el sensor solo, sin la resistencia pull-up (5 KΩ según las especificaciones técnicas) necesaria para evitar inestabilidades en la señal de salida, por menos de 1,5 €. Por otro lado un circuito integrado que tiene todo lo necesario para conectar y funcionar por un poco menos de 2€. Merece la pena comprar este último debido a que ya tenemos todo montado y nos podemos olvidar de los componentes extra.
Sin duda alguna es un sensor a tener en cuenta por su funcionalidad en cuanto a la medición de la humedad, la conversión a grados centígrados. El mayor problema que podemos encontrar es el rango de temperaturas que va desde 0º C a 50º C.
Internamente realiza la conversión a grados centígrados y su mayor fuerte quizás sea su calidad pero por el contrario, solo podemos leer la temperatura cada dos segundos, tiene un rango de muestras por segundo muy bajo.
Algo muy a tener en cuenta es la programación de este dispositivo y de su hermano mayor, el DHT22, del cual hablaré más adelante. Arduino incorpora una librería, dht.h, que nos permite leer toda la gama de sensores DHT. Esta librería facilita mucho la lectura de estos tipos de componentes.
Voltaje de operación: de 3 V a 5,5 V
Rango de temperaturas: 0º C a 50º C
Precisión: ±2º C
Resolución: 8 bit
Muestras/segundo: 0,5
Hoja de características técnicas
#5. Sensor temperatura Arduino DHT22
Por último vamos a ver el hermano mayor del sensor DHT11, el DHT22. Este sensor también nos mide la humedad. Cabe destacar su alta fiabilidad y su estabilidad.

Lo podemos encontrar por 4,56€ sin la resistencia pull up y por 5,31 € listo para conectar a nuestro Arduino.
Respecto a sus prestaciones, el rango abarca temperaturas bajo cero, tiene una precisión mayor y la resolución es de 16 bit, aunque sigue siendo un sensor muy lento ya que podemos obtener una muestra cada 2 segundos.
Si queremos más precisión, este es nuestro sensor.
Voltaje de operación: de 3,3 V a 6 V
Rango de temperaturas: -40º C a 80º C
Precisión: ±0,5º C
Resolución: 16 bit
Muestras/segundo: 0,5
Hoja de características técnicas
Sensores de temperatura para automatizaciones
Cuando hablamos de sensores para la automatización y los procesos de control, ya no estamos hablando de algo que sea para aficionados, entramos dentro del sector profesional. En este caso los sensores son más caros ya que aportan características y funcionalidades especiales para este sector.
Con este tipo de sensores seremos capaces de medir en entornos con grandes fluctuaciones y con mucha precisión.
Podemos encontrar una gran variedad de este tipo de sensores. Yo te voy a nombrar 2 sensores que destacan por sus prestaciones.
#1. Sensor SHT15
Se trata de un sensor de humedad y temperatura muy preciso, 0,3ºC, diseñado para trabajar en entornos con grandes fluctuaciones tanto en temperatura (de -40º C a 123,8º C) como en humedad.

Lo puedes encontrar por un precio de 39,75€ más gastos de envío.
Es un sensor digital que viene completamente calibrado, tiene un tiempo de respuesta muy rápido (1 muestra por segundo) y nos da una resolución de 14 bit.
Para conectar con Arduino, utiliza el protocolo I2C. Puedes acceder a la hoja de características técnicas para ver sus especificaciones.
#2. Sensor Thermocouple Type-k
Hasta ahora hemos visto sensores que pueden medir la temperatura del entorno. Este sensor se mueve muy a gusto en condiciones extremas, rangos entre -200º C y 1350º C, incluso hay algunos que llegan por encima de los 2300º C . Su uso está destinado a medir la temperatura en calderas y dispositivos con una alta temperatura.

Su coste no es muy elevado, casi 9€, debido a su simplicidad, son solo dos cables de metal sensible.
Este tipo de sensores no tiene nada de electrónica. Consiste en un par de cables de metal soldados. Se puede medir el voltaje que circula por estos dos cables juntos cuando sube la temperatura, debido a la naturaleza de este tipo de metales.
La gran dificultad de este sensor es el voltaje que produce al aumentar o disminuir la temperatura. Por un lado es muy pequeño, del orden de 50 μV (microvoltios). 1 μV equivale a 1/1.000.000 V.
Otra dificultad es que no es lineal, no siempre sube la temperatura 50 μV/ºC.
Por lo tanto hay que utilizar un convertidor de analógico a digital ADC como el MAX6675. Puedes encontrar todo el conjunto por casi 11€.
Sensores de temperatura con características especiales
Los sensores que hemos visto anteriormente son sensores que nos ayudan a medir la temperatura con mayor o menor precisión y nos permiten sacar nuestro proyecto hacia delante. Podemos elegir si entre una gran variedad según nuestras necesidades.
Pero cuando estamos hablando de otros tipos de casos donde la temperatura nos sirve, por ejemplo, para detectar movimiento o el número de personas que hay en una habitación, estos sensores no nos van a servir para nada.
Aquí entran en juego los sensores con características especiales y que no son para utilizar en la típica estación meteorológica. Se utilizan para proyectos muy especiales.
#1. Sensor de temperatura MLX90614ESF
Se trata de un sensor que utiliza la luz infrarroja para medir la temperatura, incluso de objetos remotos sin la necesidad de estar en contacto con ellos.

Su precio no es disparatado, viene a costar unos 13€. Es muy simple de usar y ofrece una buena precisión (0,02º C) y alta resolución (10-bit).
Podemos comunicar de dos maneras con este sensor, por el protocolo I2C y mediante un pin PWM.
Se puede utilizar en muchas aplicaciones, pero sobre todo en proyectos donde se requiere la medida de temperatura en un campo de 90º de visión.
#2. Sensor de temperatura TPA81
Otro sensor de infrarrojos muy potente. Este tiene incorporado una funcionalidad que le hace capaz de hacer cosas muy interesantes. Puede medir la temperatura en 8 puntos diferentes al mismo tiempo gracias a la lente incorporada que trae.

El precio se dispara debido a sus funcionalidades, viene a costar unos 84€.
La comunicación es a través del protocolo I2C y su uso es muy variado. El robot humanoide NAO utiliza este sensor para detectar las fuentes de calor.
#3. Sensor de temperatura D6T MEMS
Al igual que el anterior sensor, el TPA81, el D6T utiliza la luz infrarroja y una lente para medir la temperatura en diferentes puntos a la vez, hasta 16 (matriz de 4X4) en el modelo 44L y hasta 8 en vertical en el modelo 8L.

Sin duda alguna es toda una cámara térmica y un dispositivo muy deseado para todos los que nos gusta trastear con la electrónica.
El precio es quizás un poco desorbitado, encontramos la versión 44L por 150€ y la versión 8L por un poco más de 140€.
Si quieres saber más mira la hoja de características técnicas.
Pues hasta aquí el repaso por la gran variedad de sensores que hemos visto para todos los gustos. Solo tienes que elegir el tuyo y a trabajar.
El recurso del oyente
José de Logroño nos ha enviado otro recurso fascinante, se trata de un sensor magnético y un imán dentro de una caja, GaussToys.
Por supuesto que dentro tiene el circuito necesario para que podamos interactuar con el. Se puede conectar fácilmente a un Arduino y programarlo gracias al kit de desarrollo de software libre.
Detecta diferentes movimientos como la rotación, el deslizamiento, movimiento en 2D y 3D, presión, contacto y velocidad.
Es muy fácil de usar, colocas la caja en la protoboard por ejemplo, haces el conexionado, cargas el SDK y empiezas a mover la ficha por encima de la caja que contiene un imán.
Os recomiendo que entréis en su web y que veáis todas las características que tiene.
Lo puedes encontrar desde 19€ y tiene además un montón de complementos que se compran a parte.
Puedes escuchar este programa en, iVoox, iTunes y en Spreaker. Si lo haces, por favor valora y comenta, así podremos llegar a más gente.
Gracias a Shutterstock por ceder los derechos de la imagen