Sensor de temperatura LM75A con LCD1602 I2C
En este tutorial aprenderemos a usar el sensor de temperatura LM75A para mostrar lecturas de temperatura tanto en Celsius como en Fahrenheit en una pantalla LCD1602 utilizando la comunicación I2C. El LM75A puede medir temperaturas que van desde -55°C hasta +125°C, lo que lo hace adecuado para diversas aplicaciones. Una vez que la configuración esté completa, podrás ver lecturas de temperatura en tiempo real en la pantalla LCD.


Para este proyecto utilizaremos el sensor LM75A y el módulo LCD1602 conectados vía I2C, lo que permite un cableado más sencillo y menos pines utilizados en el Arduino. El objetivo es crear un sistema que lea la temperatura de forma continua y la muestre en el LCD. Si necesita aclaración sobre alguna parte del proceso, asegúrese de consultar el tutorial en video (en el video a las 00:00).
Hardware explicado
Los componentes principales para este proyecto incluyen el sensor de temperatura LM75A y la pantalla LCD1602. El LM75A es un sensor de temperatura I2C que proporciona lecturas de temperatura precisas. Se comunica con el Arduino mediante solo dos cables, SDA (línea de datos) y SCL (línea de reloj), lo que facilita su integración en tus proyectos.
La LCD1602 es una pantalla de 16x2 caracteres que puede mostrar hasta 32 caracteres a la vez. Al usar la interfaz I2C, podemos controlarla con solo dos cables adicionales, lo que simplifica enormemente el proceso de cableado. La retroiluminación de la LCD también mejora la visibilidad en entornos con poca luz.
Detalles de la hoja de datos
| Fabricante | Texas Instruments |
|---|---|
| Número de pieza | LM75A |
| Tensión lógica/E/S | 2.7 V a 5.5 V |
| Tensión de alimentación | 2.7 V a 5.5 V |
| Corriente de salida (por canal) | No aplica |
| Corriente pico (por canal) | No aplica |
| Guía de frecuencia PWM | No aplica |
| Umbrales de lógica de entrada | 0.3 * Vcc (bajo), 0.7 * Vcc (alto) |
| Caída de voltaje / RDS(en conducción)/ saturación | No aplica |
| Límites térmicos | Temperatura de funcionamiento: -55°C a +125°C |
| Paquete | SOT-23 |
| Notas / variantes | Disponible en múltiples direcciones I2C |
- Asegúrese de que la fuente de alimentación sea adecuada (2,7 V a 5,5 V).
- Utilice resistencias de pull-up en las líneas SDA y SCL si es necesario.
- Compruebe la configuración de direcciones I2C para varios dispositivos.
- Mantenga el cableado corto para minimizar la interferencia.
- Rango de temperatura del monitor: -55°C a +125°C.
- Use el monitor serial para depurar las lecturas de temperatura.
- Gestiona los estados de error en el código de manera efectiva.
- Tenga cuidado con los requisitos de energía de la pantalla.
Instrucciones de cableado

Para cablear el sensor de temperatura LM75A y la pantalla LCD1602, comience conectando la alimentación. Conecte el pin VCC tanto del LM75A como de la LCD1602 al pin 5V del Arduino. Luego, conecte el pin de tierra (GND) de ambos módulos al pin GND del Arduino.
A continuación, conecta las líneas de comunicación I2C. El pin SDA del LM75A debe conectarse al pin A4 del Arduino, mientras que el pin SCL debe conectarse al pin A5. Esto permite la comunicación I2C entre el sensor y el Arduino. Asegúrate de que las conexiones estén firmes para evitar errores de comunicación.
Ejemplos de código y guía paso a paso
En el código, primero incluimos las bibliotecas necesarias para el sensor LM75A y la pantalla LCD1602. El siguiente extracto demuestra cómo crear una instancia del sensor LM75A:
LM75A lm75a_sensor(false, false, false);Esta línea inicializa el objeto sensor LM75A. Los parámetros booleanos corresponden a los pines A0, A1 y A2 del LM75A, lo que permite usar direcciones I2C diferentes si es necesario.
A continuación, configuramos el monitor serial e inicializamos la pantalla LCD:
void setup(void) {
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.print("Robojax LM75A");
}Aquí iniciamos la comunicación serie a 9600 baudios e inicializamos la pantalla LCD. Se enciende la retroiluminación y se imprime un mensaje inicial en la pantalla.
En el bucle principal, leemos continuamente la temperatura y la mostramos:
float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
Serial.println("Error while getting temperature");
}Esta sección recupera la temperatura del sensor. Si la lectura no es válida, se envía un mensaje de error al monitor serie. De lo contrario, la temperatura puede procesarse y mostrarse en la pantalla LCD.
Demostración / Qué esperar
Una vez que todo esté cableado y el código subido, deberías ver las lecturas de temperatura en la pantalla LCD1602, alternando entre Celsius y Fahrenheit. Si el sensor LM75A funciona correctamente, actualizará de forma continua la temperatura mostrada cada segundo. Si hay algún problema, como polaridad invertida o cableado incorrecto, revisa las conexiones y asegúrate de que se usen los pines correctos (en el video a las 00:00).
Cosas que podrías necesitar
-
AmazonasCompra LCD1602-I2C en Amazonamzn.to
-
AmazonasCompra LM75A en Amazonamzn.to
-
eBayCompra LCD1602-I2C en eBay.ebay.us
-
AliExpressComprar 10 piezas de LCD1602-I2C en AliExpresss.click.aliexpress.com
Recursos y referencias
-
ExternoBiblioteca LM75A de GitHubgithub.com
-
ExternoHoja de datos del LM75A de NXPnxp.com
-
Externo
Archivos📁
Archivo de Fritzing
-
Sensor de temperatura LM75
Temperature Sensor - LM75.fzpz0.01 MB
Otros archivos
-
Biblioteca LM75A de Robojax.com
robojax-LM75A_temperature_sensor.zip0.56 MB