8. La hora del baño

En este reto vamos a construir un termómetro. Usaremos el sensor para medir la temperatura del agua del baño. Aunque el Arduino es una herramienta digital, puede interpretar señales de una entrada analógica, como el sensor de temperatura TMP36, utilizando el convertidor analógico a digital (ADC) incorporado, al que se accede a través de los pines analógicos A0-A5, como hemos aprendido en el reto 5.

EL SENSOR DE TEMPERATURA

En TinkerCAD disponemos de un modelo comercial de un sensor de temperatura muy extendido, el TMP36. Es simplemente un chip que nos devuelve un valor de tensión proporcional a la temperatura a la que está sometido.

Según su hoja de características el TMP36 puede medir entre -40ºC y 125ºC

  • Mide la temperatura en grados centígrados.
    • Funciona entre -50º C y 125ºC para el TMP36.
    • Funciona entre 0º C y 100ºC para el LM35DZ .
    • No es especialmente preciso, ya que tiene ± 1ºC de incertidumbre, pero normalmente nos sobra para proyectos sencillos y es muy barato.
    • EL encapsulado es similar al de un transistor y también tiene tres patas, así que mucho cuidado con confundirlos. Intentad leer las letras que lleva serigrafiadas (si podéis, porque suelen ser tan pequeñas que a veces no se leen ni con lupa).


Esquema de montaje

Conecta el sensor TMP36 a 5V y GND. La pata central lleva la señal de datos.

Recuerda que se trata de un sensor analógico, así que la pata de señal irá a un pin analógico, por ejemplo el A0.

GUÍA DE PROGRAMACIÓN

En este programa vamos a guardar el mostrar el valor que proporciona el sensor por el pin A0.

ACTIVIDADES

1

Realiza el montaje de la guía de programación. Inicia la simulación y observa que puedes elegir el valor de temperatura moviendo el deslizador al hacer clic en el chip TMP36.

Abre el monitor serie y comprueba como cambia el valor de A0 según cambia la temperatura. ¿Qué valor obtienes en A0 en -40ºC? ¿Y el 125ºC?

2

Como has podido comprobar, los valores mínimo y máximo que proporciona el sensor de temperatura no oscilan entre 0 y 1023 como veíamos en el reto 5, así que el mapeo de los valores para convertirlos en un valor de temperatura en ºC se complica excesivamente.

De hecho, si haces pruebas verás que el valor de temperatura se puede calcular mapeando (A0-20)*3,04 a los valores de -40 a 125 como puedes ver en el bloque de la derecha.

Sin embargo, no es necesario complicarse con esta fórmula si no queremos, pues TinkerCAD ya tiene un bloque implementado para leer el valor del sensor de temperatura.

Modifica el programa de la guía de programación para almacenar en una variable "temp" la temperatura del sensor en ºC y mostrarlo por el puerto serie cada segundo.

3

Finalmente vamos a diseñar un sencillo termómetro para el baño de un bebé. La temperatura ideal para el baño está entre 34 y 37ºC. Lo señalizaremos por medio de 3 leds: rojo, verde y azul, codificados como puedes ver a la derecha.

Frío 🥶 (<34ºC)

Quema 🥵 (>37ºC)

Perfecta😍 (entre 34 y 37 ºC)

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.