En este tutorial vas a aprender a configurar un termómetro digital utilizando un termistor y una placa Mega 2560. La idea es capturar la temperatura ambiente y mostrar los valores actualizados en tiempo real a través de una pantalla LCD1602.
Vista general
En esta guía, vas a usar un módulo LCD1602 para visualizar la temperatura detectada por el sensor.
Componentes necesarios
(1) x Elegoo Mega 2560 R3
(1) x Módulo LCD1602
(1) x Resistencia de 10k ohm
(1) x Termistor
(1) x Potenciómetro
(1) x Breadboard de 830 puntos
(18) x Cables M-M (Jumpers macho-macho)
Introducción a los componentes
Termistor
Un termistor es una resistencia térmica, es decir, un componente que cambia su resistencia eléctrica según la temperatura. Técnicamente, todas las resistencias son termistores porque varían un poco con el calor, pero en las comunes el cambio es tan chico que cuesta medirlo. Los termistores están fabricados para que esa variación sea drástica, pudiendo cambiar 100 Ohms o más por cada grado de diferencia.
Existen dos tipos: NTC (coeficiente de temperatura negativo) y PTC (coeficiente de temperatura positivo). Generalmente, para medir temperatura se usan sensores NTC. Los PTC suelen usarse como fusibles rearmables: cuando sube la temperatura, aumenta la resistencia y "frena" el paso de la corriente, algo muy práctico para proteger circuitos.
Esquema de conexión y diagrama de cableado
Seguí las conexiones indicadas en el gráfico para asegurar el funcionamiento correcto del LCD y el sensor analógico.
Código
Podés hacer clic en el enlace para bajar el archivo del programa a tu dispositivo. Una vez descargado, dale doble clic para abrirlo. Importante: antes de abrir el archivo, fijate de tener instalado el IDE de Arduino y los componentes de soporte para la placa y el driver del Mega 2560. Si tenés dudas, revisá la sección "part 1" de la documentación.
📥 DESCARGAR lcd_thermometer.ino
Antes de correr el programa, asegurate de tener instalada la librería correspondiente. Si no, el código no va a funcionar.
Con este código, la placa lee los datos del termistor NTC, calcula la temperatura usando la ecuación de Steinhart-Hart y muestra el resultado en la pantalla LCD de 16x2. Los valores se actualizan cada 500 milisegundos.
Abrí el Serial Monitor para ver los datos en la compu. Los conceptos básicos sobre el monitor serie los podés encontrar en el tutorial 4 de la parte 2.
Inclusión de librerías e inicialización:
#include <LiquidCrystal.h>: Librería integrada de Arduino para manejar pantallas LCD.
int tempPin = 0;: Define el pin A0 como entrada analógica para el termistor.
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);: Configura el objeto LCD con los pines RS=7, EN=8, D4=9, D5=10, D6=11, D7=12.
Función Setup:
lcd.begin(16, 2);: Prepara la pantalla LCD indicando que tiene 16 columnas y 2 filas.
Lectura y cálculo de temperatura:
int tempReading = analogRead(tempPin);: Lee el valor del pin analógico.
double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));: Calcula el logaritmo natural para determinar la resistencia.
tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK );: Aplica la ecuación de Steinhart-Hart para obtener la temperatura en Kelvin.
float tempC = tempK - 273.15;: Pasa los grados Kelvin a Celsius.
float tempF = (tempC * 9.0)/ 5.0 + 32.0;: Convierte Celsius a Fahrenheit.
Visualización en LCD y demora:
lcd.setCursor(0, 0);: Posiciona el cursor al inicio de la primera fila.
lcd.print("Temp C ");: Escribe la etiqueta de temperatura en la pantalla.
delay(500);: Pausa de medio segundo entre cada actualización de lectura.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.