Sensor de temperatura LM75A con LCD1602 I2C

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.

LCD1602-I2C display module with 4 wires

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

FabricanteTexas Instruments
Número de piezaLM75A
Tensión lógica/E/S2.7 V a 5.5 V
Tensión de alimentación2.7 V a 5.5 V
Corriente de salida (por canal)No aplica
Corriente pico (por canal)No aplica
Guía de frecuencia PWMNo aplica
Umbrales de lógica de entrada0.3 * Vcc (bajo), 0.7 * Vcc (alto)
Caída de voltaje / RDS(en conducción)/ saturaciónNo aplica
Límites térmicosTemperatura de funcionamiento: -55°C a +125°C
PaqueteSOT-23
Notas / variantesDisponible 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

Arduino_wiring_LM75A_LCD_bb

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).

Imágenes

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_LCD_bb
Arduino_wiring_LM75A_LCD_bb
129-LM75A temperature sensor with LCD1602 I2C
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Archivo de Fritzing

Otros archivos