Arduino Uno: Sistema de monitoreo con pantalla LCD 16x2 I2C [16]

Arduino Uno: Sistema de monitoreo con pantalla LCD 16x2 I2C. El Blog de Joseca. Guayaquil - Ecuador.

En este proyecto aprenderás a usar una pantalla LCD 16x2 con módulo I2C para mostrar la temperatura en grados Celsius y generar una alerta cuando el valor supere un límite definido. Además de visualizar la información en pantalla, Arduino encenderá un LED y activará un buzzer cuando la temperatura sea alta.

Este tipo de práctica es muy útil porque integra varios elementos aprendidos anteriormente: lectura de sensores, uso de condiciones, control de salidas y visualización de datos en una pantalla.

🎯 Objetivo

Medir la temperatura con un sensor NTC, mostrarla en una pantalla LCD 16x2 I2C y activar una alerta con LED y buzzer cuando la temperatura sea mayor o igual a 30 °C.

🖥️ ¿Qué es una pantalla LCD 16x2 I2C?

La pantalla LCD 16x2 permite mostrar 2 filas de 16 caracteres. Gracias al módulo I2C, su conexión se simplifica mucho, ya que solo utiliza cuatro pines:

    • VCC
    • GND
    • SDA
    • SCL

Esto la convierte en una excelente opción para mostrar valores, mensajes de estado y alertas sin depender del Monitor Serial.

🌡️ ¿Qué hará este proyecto?

El sistema realizará las siguientes acciones:

    • leerá la temperatura desde un sensor NTC
    • convertirá la lectura a grados Celsius
    • mostrará la temperatura en la pantalla LCD
    • indicará si la temperatura es normal o alta
    • activará un LED y un buzzer si la temperatura llega a 30 °C o más

🛠️ Materiales

    • 1 Arduino Uno
    • 1 pantalla LCD 16x2 con módulo I2C
    • 1 sensor de temperatura analógico NTC
    • 1 LED
    • 1 buzzer
    • 1 resistencia de 220Ω
    • Protoboard y cables

Conexión

Pantalla LCD 16x2 I2C

    • VCC → 5V
    • GND → GND
    • SDA → A4
    • SCL → A5

Sensor NTC

    • VCC → 5V
    • GND → GND
    • S → A0

LED

    • Ánodo → Pin 8
    • Cátodo → Resistencia de 220Ω → GND

Buzzer

    • Pin positivo → Pin 9
    • Pin negativo → GND

En Wokwi, el sensor NTC puede funcionar mejor si se coloca fuera del protoboard y se conecta directamente con cables a 5V, GND y A0.


💻 Código Arduino

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <math.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sensorPin = A0;
const int ledPin = 8;
const int buzzerPin = 9;

const float BETA = 3950; // parámetro del NTC

void setup() {
  lcd.init();
  lcd.backlight();

  pinMode(ledPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);

  lcd.setCursor(0, 0);
  lcd.print("Iniciando...");
  delay(2000);
  lcd.clear();
}

void loop() {
  int valor = analogRead(sensorPin);
  
  //se convierte valor a grados Celcius
  float temperatura = 1 / (log(1 / (1023.0 / valor - 1)) / BETA + 1.0 / 298.15) - 273.15;

  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperatura);
  lcd.print((char)223);
  lcd.print("C   ");

  if (temperatura >= 30) {
    digitalWrite(ledPin, HIGH);
    digitalWrite(buzzerPin, HIGH);

    lcd.setCursor(0, 1);
    lcd.print("ALERTA TEMP ALTA");
  } else {
    digitalWrite(ledPin, LOW);
    digitalWrite(buzzerPin, LOW);

    lcd.setCursor(0, 1);
    lcd.print("Temp normal     ");
  }

  delay(1000);
}


📖 Explicación del código

    • #include <Wire.h> permite la comunicación I2C
    • #include <LiquidCrystal_I2C.h> carga la librería de la pantalla LCD
    • LiquidCrystal_I2C lcd(0x27, 16, 2); crea el objeto de la pantalla
    • analogRead(sensorPin) lee el valor analógico del sensor NTC
    • luego se aplica una fórmula para convertir esa lectura a grados Celsius
    • en la primera fila se muestra la temperatura actual
    • en la segunda fila se muestra el estado del sistema
    • si la temperatura es mayor o igual a 30 °C, se activa la alerta

Mientras la temperatura sea inferior a 30 °C, la pantalla mostrará el mensaje:

Temp normal

Pero si la temperatura alcanza o supera ese valor:

  • se encenderá el LED
  • sonará el buzzer
  • la pantalla mostrará:

ALERTA TEMP ALTA

De esta manera, el sistema no solo mide la temperatura, sino que también informa y responde automáticamente.

🚀 Posibles mejoras

Este proyecto puede ampliarse de varias formas:

    • cambiar el mensaje de alerta por uno más corto o más llamativo
    • hacer que el buzzer suene de forma intermitente
    • agregar un botón para apagar temporalmente la alarma
    • convertirlo en una estación ambiental básica

⚠️ Errores comunes

❌ No conectar correctamente SDA y SCL

❌ Usar una dirección I2C incorrecta en la pantalla

❌ Esperar que el sensor entregue grados Celsius sin conversión

❌ No dejar espacios al final de los mensajes de la LCD

❌ Colocar el sensor NTC en una posición incorrecta dentro del protoboard en Wokwi

✅ Conclusión

Este proyecto permite integrar varios conceptos importantes de Arduino en una sola práctica: sensores, pantalla, salidas y condiciones. Mostrar la temperatura en grados Celsius en una LCD hace que el sistema sea mucho más claro y útil para el usuario.

Además, al activar un LED y un buzzer cuando la temperatura supera los 30 °C, se crea una alerta básica que acerca al estudiante a aplicaciones reales de monitoreo y automatización.


[warning title="Simulación en Wokwi" icon="check-circle"] https://wokwi.com/projects/458960696514366465 [/warning]


marzo 19, 2026

Publicar un comentario

[blogger]

MKRdezign

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Con tecnología de Blogger.
Javascript DisablePlease Enable Javascript To See All Widget