Esta pantalla LCD tiene 16 caractéres en cada una de las 2 filas. Se puede encontrar con contralador LCD I2C que es la que vamos a utilizar por comodidad a la hora de conectar reduciendo a sólo cuatro conexiones.
Conectamos el GND al GND de la placa y el VCC a 5 V de la placa y el SDA (datos) y el SCL (reloj) a los equivalentes en la placa.
Por ejemplo si la placa es una Mega corresponde a los pines 20 y 21 y para la UNO serán los A4 y A5 respectivamente.
Imagen vía https://www.prometec.net |
Antes de hacer el programa reviso la dirección de bus I2C que usa la pantalla. He de recordar que usa 7 bits, eso significa que podemos usar hasta 128 dispositivos diferentes que usan I2C. Se supone que la dirección I2C de la pantalla LCD es la 0x27, en hexadecimal. Pero para asegurarnos usamos el Scanner I2C que nos indicará esa dirección. Este es el enlace al scanner I2C
Una vez comprobada la dirección, uso las librerías Wire.h (estándar de I2C) y una nueva librería para manejar el display con I2C, Se llama LiquidCrystal_I2C.
Aquí os dejo un ejemplo de programa. Se muestra por la pantalla el mensaje en dos filas.
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 //Comprobado con scaner I2C
LiquidCrystal_I2C lcd(I2C_ADDR,2, 1, 0, 4, 5, 6, 7);
void setup()
{
lcd.begin (16,2); // Inicializa el display con 16 caracteres 2 lineas
lcd.setBacklightPin(3,POSITIVE); // El pin 3 es la luz
lcd.setBacklight(HIGH); // Se ilumina
}
void loop()
{
lcd.clear(); // borramos la pantalla
lcd.setCursor ( 2, 0 ); // situamos cursor en el 2ºcaracter y 1ªfila
lcd.print("TecnoCiencia");
lcd.setCursor ( 2, 1 ); // situamos cursor en el 2ºcaracter y 2ªfila
lcd.print("Macnolo.Blog");
delay (3000); //Esperamos 3 s
lcd.clear();
lcd.setCursor ( 1, 0 );
lcd.print("Prueba LCD1602");
lcd.setCursor ( 4, 1 );
lcd.print("ManoloJCR");
delay (3000);
}