5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Contacte con nosotros Iniciar sesión
Buscar
0
S/. 0,00
CATEGORÍAS
All Blog News Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
ARTÍCULOS POPULARES
Tutorial sensor de ujo de agua abr 13, 2016
Con guración del módulo bluetooth HC-05 usando comandos AT ago 08, 2015
Tutorial trasmisor de celda de carga HX711, Balanza Digital ago 23, 2015
ARTÍCULOS RECIENTES
Usando ESP8266 con el IDE de Arduino oct 21, 2016
Tutorial Sensor de Distancia SHARP sep 28, 2016
Arduino y ESP8266 como cliente web ago 24, 2016
[Link] 1/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
PROMOCIONES ESPECIALES
Módulo RTC DS1307 + EEPROM AT24C32 (I2C)
Agrega fecha y hora a tus proyectos,...
S/. 11,00 S/. 12,00
Todas los promociones especiales
ETIQUETAS
sensor V-Slot Fuente hexagonal allen screw LED LCD robot cnc
NOVEDADES
Celda de carga 1Kg
Esta celda de 1Kg para cargas pequeñas, fabricado en aluminio y con...
S/. 18,00
ESP32-CAM con cámara OV2640
Esta tarjeta está lista para empezar a transmitir video e imágenes por...
S/. 75,00
Per l V-Slot 4040 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 1,70
Per l C-beam 4080 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 1,20
[Link] 2/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Per l V-Slot 2080 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 1,24
Per l V-Slot 2060 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 0,86
Per l V-Slot 2040 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 0,66
Per l V-Slot 2020 x centímetro
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 0,40
Per l V-Slot 4040 L3.2m
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 290,00
Per l C-beam 4080 L3.2m
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 410,00
Per l V-Slot 2080 L3.2m
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
S/. 300,00
Per l V-Slot 2060 L3.2m
Perfil de aluminio extruido para empezar a hacer estructuras mecánicas y...
[Link] 3/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
S/. 205,00
Todas los nuevos productos
Tutorial LCD, conectando tu arduino a un LCD1602 y
LCD2004
Posted by Tutoriales 10 Comments
En este tutorial se explicaran el funcionamiento de los LCD alfanuméricos, desarrollaremos
varios ejemplos prácticos, aprenderemos a cómo usar los LCD en nuestros proyectos y
como crear caracteres personalizados.
En muchos de nuestros proyectos necesitamos visualizar o monitorear parámetros, si bien
una solución es los display de 7 segmentos, pero solo estamos limitados a valores
numéricos e incluso si deseamos poner varios dígitos a nivel de hardware aumenta
nuestro diseño electrónico por lo que necesitamos técnicas de multiplexado.
Los LCD alfanuméricos son la solución más práctica, para este problema, empezando por
su bajo consumo, diferentes tamaños disponibles, y trabaja con caracteres alfanuméricos,
por lo que podemos representar cualquier texto o variable.
Los LCD alfanuméricos más utilizados en el mercado son el LCD1602 y el LCD204 con
tamaños de 16x2 y 20x4 caracteres respectivamente. Entre estos tamaños también hay
diferentes modelos los cuales varían en color y sobretodo en la presencia o no de un
Backlight (retro iluminador incorporado)
[Link] 4/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
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 son los siguientes:
[Link] 5/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
[Link] 6/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
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.
Conexiones entre Arduino y display LCD1602
LCD1602 o LCD2004 Arduino Uno, Nano, Mega, etc.
VSS GND
VDD 5V
VEE Potenciómetro
RS D8
RW GND
EN D9
11. D4 D4
12. D5 D5
13. D6 D6
14. D7 D7
15. Led+ VCC
16. Led- GND
[Link] 7/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Conexiones entre Arduino y display LCD2004
Las conexiones para el LCD de 20 x 4 son las mismas:
Librería LiquidCrystal de Arduino
[Link] 8/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
El IDE de Arduino ya viene con una librería que nos permite manejar diferentes tamaños
de LCD’s, La documentación completa la pueden encontrar en la página oficial de Arduino:
LiquidCrystal
Explicaremos las funciones principales, las cuales se usaran en este tutorial.
LiquidCrystal(rs, en, d4, d5, d6, d7)
Función constructor, crea una variable de la clase LiquidCrystal, con los pines
indicados.
begin(cols, rows)
Inicializa el LCD, es necesario especificar el número de columnas (cols) y filas (rows)
del LCD.
clear()
Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda (posición
(0,0)).
setCursor(col, row)
Posiciona el cursor del LCD en la posición indicada por col y row (x,y); es decir,
establecer la ubicación en la que se mostrará posteriormente texto escrito para la
pantalla LCD.
write()
Escribir un carácter en la pantalla LCD, en la ubicación actual del cursor.
print()
Escribe un texto o mensaje en el LCD, su uso es similar a un [Link]
scrollDisplayLeft()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la
izquierda.
scrollDisplayRight()
Se desplaza el contenido de la pantalla (texto y el cursor) un espacio a la derecha.
createChar (num, datos)
Crea un carácter personalizado para su uso en la pantalla LCD. Se admiten hasta
ocho caracteres de 5x8 píxeles (numeradas del 0 al 7). Donde: num es el número de
carácter y datos es una matriz que contienen los pixeles del carácter. Se verá un
ejemplo de esto mas adelante.
Explicado la librería veamos unos ejemplos:
[Link] 9/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Un Hola mundo con Arduino y LCD7
Mostraremos texto y un valor numérico en el LCD, para esto cargamos el siguiente
sketch:
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
[Link](16, 2);
// Escribimos el Mensaje en el LCD.
[Link]("Hola Mundo");
}
void loop() {
// Ubicamos el cursor en la primera posición(columna:0) de la segunda línea(fila:1)
[Link](0, 1);
// Escribimos el número de segundos trascurridos
[Link](millis()/1000);
[Link](" Segundos");
delay(100);
}
Como se observa con la función printf() escribimos el texto, y con setCursor(x,y) indicamos
la poción en donde deseamos que se escriba el texto.
Después de cargar, en su LCD deben obtener el siguiente resultado
[Link] 10/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Para el caso del LCD de 20x4 tienen que especificar este tamaño cundo inicializan el LCD.
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
[Link](20,4);
// Escribimos el Mensaje en el LCD
[Link]("Hola Mundo");
[Link](0,2);
[Link]("NAYLAMP MECHATRONICS");
[Link](0,3);
[Link](" PERU ");
}
void loop() {
// Ubicamos el cursor en la primera posición (columna:0) de la segunda línea(fila:1)
[Link](0, 1);
// Escribimos el número de segundos trascurridos
[Link](millis()/1000);
[Link](" segundos");
delay(100);
Desplazando el texto en el LCD
En este ejemplo para desplazar el texto usaremos la función scrollDisplayLeft();
[Link] 11/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
[Link](16, 2);
// Escribimos el Mensaje en el LCD en una posición central.
[Link](10, 0);
[Link]("[Link]");
[Link](5, 1);
[Link]("Tutorial LCD, Test de desplazamiento ");
}
void loop() {
//desplazamos una posición a la izquierda
[Link]();
delay(250);
}
Como se observa en el código, inicialmente escribimos el texto, luego desplazamos el
texto una posición por cada ciclo con una pausa de 250ms , tiempo que si se varía
aumentará o disminuirá la velocidad de desplazamiento, notar que el texto que escribimos
es mayor a los 16 caracteres, pero igual el texto no se pierde, esto es porque el espacio de
trabajo por cada fila en realidad es de 40 caracteres, y el LCD solo muestra los 16
primeros caracteres, pero al desplazarlo logramos ver los demás caracteres.
Mostrando datos de sensores o variables en el LCD
En este ejemplo mostramos en el LCD variables, que pueden representar valores de
sensores u otros datos. Para simular los sensores usaremos potenciómetros
conectados a los pines analógicos.
[Link] 12/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
[Link](16,2);
}
void loop() {
int sen1=analogRead(A0);
float sen2=analogRead(A1)*(5.0 / 1023.0);
float sen3=analogRead(A2)*(100.0 / 1023.0);
int tiempo=millis()/1000;
// Cursor en la primera posición de la primera fila
[Link](0,0);
[Link]("ADC:");
[Link](sen1);
[Link](" ");
// Cursor en la 11° posición de la primera fila
[Link](10,0);
[Link]("V:");
[Link](sen2,1);//1 decimal
[Link]("V ");
// Cursor en la primera posición de la 2° fila
[Link](0,1);
[Link]("T:");
[Link](sen3,1); //1 decimal
[Link]("337C "); // "337" -> "°"
// Cursor en la 11° posición de la 2° fila
[Link](10,1);
[Link]("t:");
[Link](tiempo);
[Link](" s ");
delay(200);
Su resultado debe ser el siguiente.
[Link] 13/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
De igual manera se trabaja con el LCD de 20x4, con la ventaja de tener más espacio para
mostrar los valores.
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
[Link](20,4);
}
void loop() {
int sen1=analogRead(A0);
float sen2=analogRead(A1)*(5.0 / 1023.0);
float sen3=analogRead(A2)*(100.0 / 1023.0);
int tiempo=millis()/1000;
// Cursor en la primera posición de la primera fila
[Link](0,0);
[Link]("ADC: ");
[Link](sen1);
[Link](" ");
// Cursor en la 1° posición de la 2° fila
[Link](0,1);
[Link]("Voltaje: ");
[Link](sen2);
[Link](" V ");
// Cursor en la primera posición de la 3° fila
[Link](0,2);
[Link]("Temperatura:");
[Link](sen3); //1 decimal
[Link](" 337C "); // "337" -> "°"
// Cursor en la 1° posición de la 4° fila
[Link](0,3);
[Link]("tiempo: ");
[Link](tiempo);
[Link](" s ");
[Link] 14/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
delay(200);
Agregando nuevos caracteres a nuestro LCD
En algunos casos el LCD no tiene los caracteres que deseamos, o necesitamos dibujar
caracteres personalizados, en este caso usamos la función createChar () pero antes
expliquemos como está constituido un carácter:
Un carácter está formado por 5x8 pixeles los cuales se representan por 8 bytes, uno para
cada fila, los 5 bits menos significativos representan los pixeles del carácter
[Link] 15/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Como máximo podemos crear 8 caracteres nuevos.
Para este ejemplo crearemos los siguientes caracteres:
[Link] 16/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
A continuación se muestra el código para implementar los nuevos caracteres.
#include <LiquidCrystal.h>
//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
byte N[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B10001,
B00000,
};
byte A[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B11111,
B10001,
B00000,
};
byte Y[8] = {
B10001,
B10001,
[Link] 17/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
B10001,
B10001,
B11111,
B00100,
B00100,
B00000,
};
byte L[8] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B11111,
B00000,
};
byte M[8] = {
B11111,
B10101,
B10101,
B10101,
B10101,
B10101,
B10101,
B00000,
};
byte P[8] = {
B11111,
B10001,
B10001,
B10001,
B11111,
B10000,
B10000,
B00000,
};
byte cara[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
byte cuerpo[8] = {
B01110,
B01110,
B00100,
B11111,
B00100,
B01010,
B10001,
B00000,
};
void setup () {
[Link] (0,N);
[Link] (1,A);
[Link] (2,Y);
[Link] 18/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
[Link] (3,L);
[Link] (4,M);
[Link] (5,P);
[Link] (6,cara);
[Link] (7,cuerpo);
// Inicializar el LCD con el número de columnas y filas del LCD
[Link] (20, 4);
// Escribimos el texto en el LCD
[Link]("Nuevos Caracteres");
[Link](0, 1);
[Link]("------");
[Link] (byte (0));
[Link] (byte (1));
[Link] (byte (2));
[Link] (byte (3));
[Link] (byte (1));
[Link] (byte (4));
[Link] (byte (5));
[Link]("-------");
[Link](0, 2);
for(int i=0;i<10;i++)
{
[Link] (byte (6));
[Link] (' ');
}
[Link](0, 3);
for(int i=0;i<20;i++)
[Link] (byte (7));
void loop () {}
Como observan en el código es necesario crear los nuevos caracteres antes de inicializar
el LCD. El resultado del ejemplo anterior es el siguiente:
[Link] 19/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
El ejemplo anterior se trabajó con un LCD de 20x4 pero ya saben cómo modificar para
trabajar con un LCD de 16x2.
Pueden adquirir los materiales usados en este tutorial en
nuestra tienda
- Arduino Uno R3
- LCD1602 Azul Backlight
- LCD2004 Azul Backlight
Tutoriales Relacionados
- Tutorial LCD con I2C, controla un LCD con solo dos pines
- Tutorial pantalla TFT táctil con Arduino
Tags: LCD Display
13 ?? 0 0 0 Compartir 1
[Link] 20/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
10 Comments
Andres
jun 3, 2018
Buenas noches, una pregunta resulta que tengo que simular una LCD 20x4, para un trabajo me
podrías decir qué programa utilizaste para simular la LCD y el programa hola mundo. Mil gracias
Reply
Jorge
may 26, 2019
Seguramente con FRITZING lo puedas hacer.
Reply
Jorge
may 26, 2019
Seguramente el FRITZING te valga.
Reply
Federico
jul 17, 2018
Hola! Antes que nada excelente pagina! Felicitaciones. Tengo un LCD 2004, creo estar haciendo
todo tal cual me decis, estoy usasndo un potenciometro de 10k, y no se por que el brillo de la
pantalla es minimo, si hay luz practicamente no se ven las letras, son casi transparentes, se te
ocurre que puede ser?
Reply
Juan Francisco
jul 30, 2018
Tené en cuenta que el tutorial es para la intensidad de luz en las letras. El backlight
se maneja con el A (anodo) y el K (catodo), es decir, las ultimas 2 entradas del LCD
de izquierda a derecha. Tendrías que poner otro potenciometro entre estos dos para
variar su intensidad.
Reply
Jorge Ruiz
ago 28, 2018
Gran calidad de explicacioón, junto con los maravillosos ejemplos e ilustraciones. Todo muy
completo...Tendré su pagina de consulta....Great, Great....
Reply
jorge
ene 2, 2019
[Link] 21/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Buenas tardes, tengo unda duda. Cuandos display puedo conectar en un Arduino MEGA?
Reply
Jorge
may 26, 2019
Tantos como conjunto de pines para cada LCD tengas y ademas por I2C puedes
meterunos 128, creo, por puerto I2C. o sea una burrada.
Reply
Mitja Ščuka
feb 8, 2019
Thank's a lot..... I'm beginer... Your site help me a loootttt.... Have a nice day .. Mitja from
SLOVENIA
Reply
Pablo
abr 28, 2019
Hola,Estoy intentando escribir en la pantalla y no doy, aun con tus mismos ejemplos, no paso del
[Link] usando un arduino UNO con una placa sunstar 2004 (20x4), con un bus de 4 bits,
tal cual los diagramas de [Link] activarse los caracteres de las lineas 1 y 3, que
corresponden con el 1111 1111 de la tabla de caracteres del principio, y son los únicos que parecen
ser afectados al mover el potenciómetro del [Link] que decir que no tengo la pantalla
soldada a los pines. El error puede deberse a un mal contacto de alguno de los bits de datos
durante una porción de segundo?Voy a seguir jugando a ver si consigo [Link] saludo y a ver si
sabes [Link]!
Reply
Leave a Reply
* Name:
* E-mail:
(Not Published)
Website:
(Site url with[Link]
* Comment:
Submit
[Link] 22/23
5/6/2019 Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004
Boletín Introduzca su dirección de correo electróni
Información
Contacte con nosotros
Entrega
Condiciones de uso
Nosotros
Tutoriales y Proyectos con Arduino
Mapa del sitio
Mi cuenta
Mis compras
Mis vales descuento
Mis direcciones
Mis datos personales
Mis vales
Información sobre la tienda
Naylamp Mechatronics SAC., Almacén: Mz. E Lote 31 Urb. Ingeniería, Trujillo - Perú //// Horario de atención:
Lun. a Vie: 10am-7pm. Sab: 10am-6pm
Llámanos ahora: 997646858
Email: [Link]@[Link]
[Link] 23/23