Cómo conectar el sensor de temperatura TMP36 a Arduino
El sensor de temperatura TMP36 es una de las opciones más accesibles y efectivas para quienes desean integrar la medición de temperatura en sus proyectos de Arduino. Su facilidad de uso y precisión lo convierten en una herramienta invaluable para experimentos y aplicaciones en el ámbito de la electrónica. A continuación, exploraremos en detalle cómo funciona este sensor, cómo conectarlo a un Arduino y cómo utilizarlo en proyectos prácticos.
El TMP36 es un sensor de temperatura centrado en grados Celsius que proporciona una salida de voltaje linealmente proporcional a la temperatura. Su diseño eficiente permite su uso sin necesidad de componentes adicionales, lo que lo hace ideal para entusiastas y profesionales por igual. Con un rango de temperatura que va desde -40°C hasta 125°C y una precisión de ±1°C a 25°C, el TMP36 es una excelente opción para diversas aplicaciones.
- Funcionamiento del TMP36
- Cómo medir la temperatura con el TMP36
- Pruebas del sensor TMP36
- Puntos de conexión del sensor TMP36
- Conectando el sensor TMP36 a un Arduino
- Lectura de datos analógicos de temperatura
- Código de Arduino para un termómetro simple
- Mejorando la precisión del sensor TMP36
- Proyecto Arduino: termómetro independiente con TMP36 y LCD I2C
Funcionamiento del TMP36
El TMP36 utiliza una técnica de estado sólido para medir la temperatura, basándose en el principio de que la diferencia de potencial (Vbe) entre la base y el emisor de un transistor tipo diodo disminuye a medida que la temperatura aumenta. Este cambio en el voltaje se amplifica, generando una señal analógica que es proporcional a la temperatura.
La relación lineal entre el voltaje y la temperatura es clave para el funcionamiento del TMP36. A pesar de que la técnica puede parecer compleja, el sensor realiza todos los cálculos internamente, lo que simplifica enormemente su uso.
Cómo medir la temperatura con el TMP36
La conexión del TMP36 es sencilla. Basta con conectar el pin izquierdo a una fuente de alimentación (que puede variar entre 2.7V y 5.5V) y el pin derecho a tierra, asumiendo que el lado plano del sensor está orientado hacia el usuario. El pin del medio proporciona un voltaje analógico que es directamente proporcional a la temperatura en grados Celsius.
Para convertir el voltaje a temperatura, se utiliza la siguiente fórmula:
Temp (°C) = (Vout – 0.5) * 100
Por ejemplo, si el voltaje de salida es 1V, la temperatura se calcularía como sigue:
Temperatura = (1 – 0.5) * 100 = 50 °C
Esta fórmula tiene en cuenta un offset de 0.5V, lo que permite al sensor leer temperaturas negativas.
Pruebas del sensor TMP36
Realizar pruebas con el TMP36 es un proceso sencillo. Conecta el pin izquierdo a una fuente de alimentación y el derecho a tierra. Luego, usa un multímetro en modo de voltaje de corriente continua (DC) para medir el voltaje en el pin del medio. A temperatura ambiente (25°C), el voltaje debería ser aproximadamente 0.75V.
Para verificar la funcionalidad del sensor, puedes realizar las siguientes pruebas:
- Presiona suavemente el sensor para observar un aumento en la temperatura.
- Coloca un cubo de hielo (en una bolsa plástica) en contacto con el sensor y observa cómo disminuye la temperatura.
Puntos de conexión del sensor TMP36
El TMP36 generalmente viene en un paquete de 3 pines (TO-92). El pinout es el siguiente:
- +Vs: Alimentación del sensor (2.7V a 5.5V).
- Vout: Salida de voltaje analógico, que se conecta a una entrada analógica del Arduino.
- GND: Conexión a tierra.
Conectando el sensor TMP36 a un Arduino
Conectar el TMP36 a un Arduino es un proceso directo. Solo necesitas conectar los siguientes pines:
- Pin de alimentación a '+Vs'.
- Pin de tierra a 'GND'.
- Pin de salida 'Vout' al pin analógico A0 del Arduino.
Para medir la temperatura del aire, puedes dejar el sensor expuesto al ambiente o fijarlo a un objeto cuyo calor desees medir.
Lectura de datos analógicos de temperatura
Una vez que el TMP36 está conectado al Arduino, puedes leer el valor de la entrada analógica utilizando la función analogRead(). Sin embargo, esta función no devuelve el voltaje de salida directamente. Para convertir el valor analógico a voltaje, utiliza la siguiente fórmula:
Vout = (lectura ADC) * (5 / 1024)
Si usas un Arduino de 3.3V, la fórmula se ajusta a:
Vout = (lectura ADC) * (3.3 / 1024)
Finalmente, para convertir el voltaje en temperatura, utiliza nuevamente la fórmula mencionada anteriormente:
Temperatura (°C) = (Vout – 0.5) * 100
Código de Arduino para un termómetro simple
A continuación se presenta un esbozo que permite leer un sensor de temperatura TMP36 y mostrar la temperatura en grados Celsius y Fahrenheit en el monitor serial.
#define sensorPin A0
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(sensorPin);
float voltage = reading * (5.0 / 1024.0);
float temperatureC = (voltage - 0.5) * 100;
Serial.print("Temperatura: ");
Serial.print(temperatureC);
Serial.print("°C | ");
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF);
Serial.println("°F");
delay(1000);
}Con este código, deberías ver en el monitor serial la temperatura en ambas escalas.
Explicación del código
El código comienza definiendo el pin analógico al que está conectado el sensor. En la función de configuración inicializamos la comunicación serial. Luego, en el bucle principal, leemos el valor analógico y lo convertimos a voltaje y, posteriormente, a temperaturas en Celsius y Fahrenheit. Finalmente, imprimimos los resultados en el monitor serial.
Mejorando la precisión del sensor TMP36
La precisión del TMP36 puede mejorarse al ajustar la referencia de voltaje utilizada para la entrada analógica. Por defecto, el Arduino utiliza 5V, lo que proporciona una resolución de aproximadamente 4.88 mV o 0.49 °C. Usar 3.3V como referencia aumentará la precisión, con una resolución de 3.22 mV o 0.32 °C.
Para implementar este ajuste, conecta el pin de 3.3V al pin AREF del Arduino y modifica el código para establecer la referencia como externa.
#define aref_voltage 3.3
void setup() {
Serial.begin(9600);
analogReference(EXTERNAL);
}Esta modificación resultará en una medición más precisa, aunque para la mayoría de los proyectos, la precisión inicial es suficiente.
Proyecto Arduino: termómetro independiente con TMP36 y LCD I2C
Si deseas mostrar los valores de temperatura en tiempo real, una pantalla LCD de 16x2 puede ser la solución ideal. A continuación, se describe cómo conectar un LCD I2C al Arduino junto con el TMP36.
El esquema de conexión es bastante sencillo. Si no estás familiarizado con los LCD de 16x2, es recomendable revisar tutoriales previos sobre su uso.
A continuación se presenta un ejemplo de código que permite imprimir valores de temperatura en el LCD:
#include
LiquidCrystal_I2C lcd(0x3F, 16, 2);
#define sensorPin A0
void setup() {
lcd.init();
lcd.backlight();
}
void loop() {
int reading = analogRead(sensorPin);
float voltage = reading * (5.0 / 1024.0);
float temperatureC = (voltage - 0.5) * 100;
lcd.setCursor(0, 0);
lcd.print("Temperatura:");
lcd.setCursor(0, 1);
lcd.print(temperatureC, 1);
lcd.print("°C");
delay(1000);
}Con este código, el LCD mostrará la temperatura en grados Celsius, y puedes adaptar el código para incluir también la lectura en Fahrenheit si lo prefieres.
Deja una respuesta

Estos temas te pueden interesar