Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004 – Cano electrónica

Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004

En este artículos sabrás cómo utilizar la pantalla lcd 1602 y el módulo de comunicación I2C con arduino, para generar texto, desplazamiento (scroll text) y caracteres especiales.

 

Material Necesario:

Módulo I2C
LCD 1602
Arduino UNO
Librería LiquidCrystal_I2C para Arduino
Cable varios

 

Módulo LCD 1602

La pantalla tiene una retroiluminación de LED y puede mostrar dos filas con hasta 16 caracteres en cada fila. Puede ver los rectángulos para cada carácter en la pantalla y los píxeles que componen cada carácter. La pantalla es está diseñada para mostrar texto.

En el emrcado también hay módulos 2004, lo que significa 20 columnas y 4 filas.

En este kit es necesario soldar el módulo adaptador I2C a display LED

 

¿Qué es el módulo I2C?

El módulo I2C o controlador I2C nos permite controlar una pantalla LCD a través del bus I2C utilizando únicamente 2 cables (SDA, SCL).

El LCD tiene una memoria interna en donde almacena todos sus caracteres alfanuméricos, los cuales podemos extender en ocho caracteres personalizados adicionales.

Los caracteres soportados por la mayoría de modelos de LCD se ilustran en la siguiente tabla:

Para la comunicación del LCD y un controlador utiliza un bus de 8 datos, pero se puede configurar para trabajar con un buz de 4 datos. También usa pines de control RS (chip select) RW (lectura/escritura) y E (enable).

Para controlar el contrastes usa una entrada analógica VEE el cual por lo general se usa un potenciómetro para poder variar el contraste, y los LCD q traen Backlight tiene dos pines al final Led+ (A) y Led- (K) los cuáles se pueden alimentar directamente a 5V o a través de una resistencia si se tratase de un LED, variando su resistencia se pude variar la intensidad de luz.

 

Preparación del display 1602 y el módulo I2C

Para preparar el módulo LCD (ya sea el 16×2 o 20×4) solo tenemos que soldar los pines de controlador IIC al display como se ve en la fotografía.

Diagrama para conectar el LCD 16×2 por I2C

A continuación, te mostramos como conectar el display con el módulo serial I2C a Arduino.

La configuración será de la siguiente manera:

SDA  -> A4

SCL   -> A5

 

Comandos de la librería I2C

 

LiquidCrystal_I2C() – Constructor de la clase, configura el hardware.

init() – Prepara el LCD para su uso.

clear() – Borra todos los caracteres de la pantalla LCD.

setCursor(col, row) – Permite mover el cursor a la posición indicada en sus parámetros.

print() – Imprime una variable o literal en la pantalla.

scrollDisplayLeft() y scrollDisplayRight() – Recorre el contenido de la pantalla a la izquierda o a la derecha.

backlight() y noBacklight() – Métodos para encender / apagar la iluminación de fondo

createChar(num, data) –  Crear un carácter definido por el usuario en la memoria del controlador de pantalla.

 

Hola Mundo con LCD1602

De acuerdo a lo anterior estamos seguros que si revisas el siguiente código entenderás cada una de las líneas del programa:

/*

* www.ProveedoraCano.com

* Con este programa se desplegará texto

* en cada una de las líneas del display

*/

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

LiquidCrystal_I2C lcd(0x27,16,2);  // dirección 0x27 o 0x3F , también se configura el tipo de pantalla 16,2 o 20,4

void setup()

{

lcd.init();                      // inicia LCD

// Imprimomos mensaje

lcd.backlight();

lcd.setCursor(3,0);   // emepezará a escribir en la columna 4 y en la línea 1

lcd.print("Hola Mundo!");

lcd.setCursor(0,1);

lcd.print("Proveedora Cano"); //emepezará a escribir en la columna 1 y en la línea 2

// lcd.setCursor(0,2);

// lcd.print("Esta es la linea 3");

//   lcd.setCursor(0,3);

//  lcd.print("escribe en la linea 4");

 

}

 

 

void loop()

{

}

 

 

Desplazando el texto en el LCD

Desplazando todas las líneas

 

/*

* ProveedoraCano.com

* Este programa desplaza el texto de la línea #1 y #2 de derecha a izquierda

*/
#include <Wire.h>

#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display





void setup()

{

lcd.init();                      // initialize the lcd

// Print a message to the LCD.

lcd.backlight();

// Escribimos el Mensaje en el LCD en una posición  central.

lcd.setCursor(10, 0);

lcd.print("www.ProveedoraCano.com");

lcd.setCursor(5, 1);

lcd.print("SIGUENOS EN NUESTRAS REDES SOCIALES  ");

}



void loop() {

//desplazamos una posición a la izquierda

lcd.scrollDisplayLeft();

delay(350);

}


 

Una línea estática y desplazamiento una línea

 

/*

* ProveedoraCano.com

* Este programa mantiene el texto de la línea #1 estático

* El texto de la línea #2 se desplaza

*/
#include <Wire.h>

#include <LiquidCrystal_I2C.h>



LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

char * messagePadded = "               Suscríbete y síguenos en nuestras redes sociales :)                     ";



void setup()

{

lcd.init();                      // initialize the lcd

// Print a message to the LCD.

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("Proveedora Cano ");

}



void loop()

{

for (int letter = 0; letter <= strlen(messagePadded) - 16; letter++) //De 0 a hasta n-16 caracteres suministrados a la siguiente función

{

showLetters(0, letter);

}

}



void showLetters(int printStart, int startLetter)

{

lcd.setCursor(printStart, 1);

for (int letter = startLetter; letter <= startLetter + 15; letter++) // Imprime solo 16 caractéres en la línea #2 empezando 'startLetter'

{

lcd.print(messagePadded[letter]);

}

lcd.print(" ");

delay(350);

}

 

 

Caracteres especiales o personalizados

La función  createChar () nos sirve para que nosotros dibujemos nuestros propios caracteres.

Un carácter está formado  por 5×8 pixeles  los cuales se representan por 8 bytes, uno para cada fila, los 5 bits menos significativos representan los pixeles del carácter.

 

Para dibujar el carácter anterior la matriz quedaría:

B00001,

B00011,

B00101,

B11111,

B00101,

B00011,

B00001,

B00001

 

El programa es muy sencillo quedando de la siguiente forma:

 

/*

* www.ProveedoraCano.com

* programa para imprimir texto

* y caracteres especiales

*/
#include <Wire.h>

#include <LiquidCrystal_I2C.h>

// CONFIGURAR  LA DIRECCIÓN DE LA LCD:

// CONFIGURAR 0x27 PARA PCF8574 NXP

// CONFIGURAR 0x3F PARA PCF8574A  Ti

LiquidCrystal_I2C lcd(0x27, 16, 2);



byte imagen1[] = {

B00001,

B00011,

B00101,

B11111,

B00101,

B00011,

B00001,

B00001

};



byte imagen2[] = {

B01100,

B10010,

B10010,

B01100,

B00100,

B00111,

B00100,

B00100

};

byte imagen3[] = {

B01110,

B10001,

B10101,

B10001,

B01010,

B00100,

B00100,

B00100

};

void setup() {

lcd.init();

lcd.backlight();

// Escribimos el texto en el LCD

lcd.createChar(0, imagen1);  // asignamos el número de caracter (de 0 a 7) y la matriz

lcd.createChar(1, imagen2);

lcd.createChar(2, imagen3);

lcd.home();

lcd.setCursor(1,0); // se indica que empiece a escribir en la columna 2 fila 1

lcd.print("Prueba especial");

lcd.setCursor(1, 1); // se indica que empiece a escribir en la columna 2 fila 2

lcd.write(0);

lcd.write(1);

lcd.write(2);

}



void loop() { }

El resultado es el siguiente:

 

Deja un comentario

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