Imprimir texto en LCD con NodeMCU ESP8266 e I2C

Conectar LCD con NodeMCU ESP8266

En este post de programación y electrónica vamos a trabajar con una LCD, módulo I2C y la tarjeta ESP8266 para hacer un sencillo Hola mundo en la LCD.

Es decir, vamos a usar la NodeMCU ESP8266 para imprimir texto en una LCD usando además un módulo I2C para ahorrar conexiones.

Sobre la dirección

Antes de usar el circuito I2C debes conocer la dirección del mismo, para ello ya hice un post.

Circuito de conexión LCD con ESP8266

Pasemos al circuito. En este caso es muy simple, pues básicamente conectamos el I2C a la LCD y después el I2C a la ESP8266. He utilizado el software para diseñarlo y queda así:

Conectar LCD con ESP8266
Conectar LCD con ESP8266

Si te quedan dudas de cómo se conecta el I2C y la LCD aquí una foto:

Conexión trasera I2C con LCD de 16 x 2
Conexión trasera I2C con LCD de 16 x 2

Instalando librería LiquidCrystal_I2C

Pasemos al software. Primero necesitamos instalar la librería. Si tú usas PlatformIO con VSCode entonces puedes ver un ejemplo de cómo buscar aquí. Básicamente la buscas e instalas:

Instalar librería LiquidCrystal_I2C para ESP8266 y LCD con I2C
Instalar librería LiquidCrystal_I2C para ESP8266 y LCD con I2C

Si usas Arduino, el proceso es similar. Solo fíjate en el nombre (LiquidCrystal_I2C) y el autor (Frank de Brabander).

Código para LCD en ESP8266

Imprimir texto en LCD con NodeMCU ESP8266 e I2C
Imprimir texto en LCD con NodeMCU ESP8266 e I2C

Ahora veamos el código que vamos a usar. Te repito que eres libre de usar cualquier IDE, solo realiza las adecuaciones pertinentes. En este caso creamos una referencia a la LCD con:

LiquidCrystal_I2C lcd(0x3f, 16, 2);

Fíjate en que 0x3f es la dirección que en tu caso puede variar. Luego la iniciamos:

// Iniciar LCD
lcd.begin(16, 2);
lcd.init();

Y encendemos su luz:

  lcd.backlight(); // Agregar brillo

Nota importante: la ESP8266 no es capaz de proveer todo el voltaje que la LCD necesita. El texto sí se va a ver, pero no tan claro como cuando alimentamos al I2C con 5V.

Luego podemos movernos con el cursor e imprimir texto:

// Imprimir
lcd.setCursor(0, 0);
lcd.print("LCD y ESP8266");
lcd.setCursor(0, 1); // Segunda fila
lcd.print("parzibyte.me");

Finalmente el código completo queda así:

/*
  https://parzibyte.me/blog
*/
#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
// La LCD
LiquidCrystal_I2C lcd(0x3f, 16, 2);

void setup()
{
  // Iniciar LCD
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight(); // Agregar brillo
  // Limpiar
  lcd.clear();
  // Imprimir
  lcd.setCursor(0, 0);
  lcd.print("LCD y ESP8266");
  lcd.setCursor(0, 1); // Segunda fila
  lcd.print("parzibyte.me");
}

void loop()
{
  // put your main code here, to run repeatedly:
}

No estoy colocando nada en el loop porque solo necesito imprimir en la LCD una vez, pero tú puedes invocar a los métodos en cualquier lugar y en cualquier evento… es decir, mostrar texto al hacer una petición HTTP, al presionar un botón, etcétera.

El resultado ya pudiste observarlo anteriormente en el post. Obviamente este solo fue el hola mundo, pero a partir de aquí ya puedes crear bastantes cosas interesantes. En una ocasión yo hice el juego de la serpiente en una LCD con Arduino.

Para terminar te dejo con más posts sobre electrónica.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *