Como Poner Dibujos A LCD
Como Poner Dibujos A LCD
Como Poner Dibujos A LCD
Arduino
by Admin | Oct 12, 2017 | Tutoriales Arduino | 26 comments
En este tutorial enseñaremos a utilizar la pantalla LCD 16X2 con Arduino. Abordaremos lo más
básico: desde la conexión de la pantalla con el arduino, mostrar cadenas de texto, enviar la lectura de
un sensor a la pantalla y finalmente llegaremos a generar caracteres personalizados en la pantalla
para hacer aún más vistosos nuestros proyectos.
Par esta experiencia, estaremos utilizando la librería LiquidCrystal que viene integrada en la
instalación del IDE de arduino y nos permite controlar toda clase de pantallas compatibles con
el controlador HD44780 ya sean de 16×2, 20×4 u otras configuraciones de caracteres.
Como adicional a este articulo recomendamos la lectura de nuestro otro artículo, donde explicamos
como realizar la conexión de la pantalla LCD 16X2 a través de un adaptador I2C, esto permite la
comunicación con pantallas de este tipo usando solamente dos pines.
Materiales necesarios para las prácticas
Para realizar las prácticas que se mencionan a continuación requerimos los siguientes materiales:
Arduino UNO R3
Protoboard de 830 puntos
Cables para conexión
Potenciómetro de 10K
Pantalla LCD 16×2 compatible con HD4470
¿Cómo utilizar una pantalla LCD 16×2 con
Arduino?
Usar una pantalla LCD 16×2 con Arduino puede ser algo complicado por la cantidad de lineas de
conexión que se requieren, por lo tanto dividiremos el proceso en varias fases para facilitarlo:
Conectar la pantalla LCD 16×2 a la alimentación de 5 volts, incluyendo la alimentación de
la iluminación led
Colocar un potenciómetro para el ajuste de contraste
Conectar los pines de datos a la pantalla (modo de 4 bits o modo de 8 bits)
Conectar los pines de control RS y EN (de manera opcional el pin RW).
A continuación se muestran los diagramas de cada parte de este proceso de conexión; El primer paso
consiste en la conexión de la alimentación, hay que fijarnos en la polaridad para evitar dañar la
pantalla. En este caso utilizaremos los pines VSS(-), VDD(+), A(+) y K(-) para brindar la
alimentación.
El siguiente paso es conexión de un potenciómetro de 10K que permite el ajuste del contraste, los
extremos del potenciómetro van al positivo y negativo de la alimentación, mientras que el cursor
(centro) va al pin VO del módulo LCD.
A continuación conectamos los pines de datos D4, D5, D6, D7. Utilizaremos solamente estos 4 pines
ya que operaremos la pantalla en Modo de 4 bits.
Finalmente realizamos la conexión de los pines de control RS y E. El pin RW es opcional y en este
caso no lo usamos para ahorrar un pin y mantener todo más simple.
Programación de la pantalla LCD 16×2 con
Arduino
El siguiente programa es un ejemplo básico para comenzar a utilizar nuestra pantalla y probar que
las conexiones se encuentran correctas. Al cargarlo debemos ver letras en pantalla y además una
animación del texto moviéndose en la pantalla. Hemos comentado lo más posible el código de
manera que sea fácil de entender.
Si no se visualiza nada en la pantalla cuando se carga este programa, recomendamos mover el
potenciómetro del contraste y/o revisar las conexiones.
/**
GeekFactory - "INNOVATING TOGETHER"
Distribucion de materiales para el desarrollo e innovacion
tecnologica
www.geekfactory.mx
EJEMPLO BASICO PARA EL USO DEL LCD 16X2 CON ARDUINO. MUESTRA UN
TEXTO QUE RECORRE
LA PANTALLA DE UN LADO A OTRO. ESTE PROGRAMA SIRVE COMO PRUEBA
DEL CORRECTO
FUNCIONAMIENTO DE NUESTRO CONEXIONADO Y TAMBIEN ILUSTRA COMO
REALIZAR OPERACIONES
CON EL CURSOR, BORRAR LA PANTALLA Y MOSTRAR CADENAS DE TEXTO.
*/
#include <LiquidCrystal.h>
void setup()
{
// INDICAMOS QUE TENEMOS CONECTADA UNA PANTALLA DE 16X2
lcd.begin(16, 2);
// MOVER EL CURSOR A LA PRIMERA POSICION DE LA PANTALLA (0, 0)
lcd.home();
// IMPRIMIR "Hola Mundo" EN LA PRIMERA LINEA
lcd.print("Hola Mundo");
// MOVER EL CURSOR A LA SEGUNDA LINEA (1) PRIMERA COLUMNA (0)
lcd.setCursor ( 0, 1 );
// IMPRIMIR OTRA CADENA EN ESTA POSICION
lcd.print("GEEKFACTORY");
// ESPERAR UN SEGUNDO
delay(1000);
}
void loop()
{
// EN EL CICLO PRINCIPAL SOLAMENTE RECORREMOS EL MENSAJE DE UN
LADO A OTRO
// VARIABLE PARA CONTROL DE CICLOS
int i;
EJEMPLO BASICO PARA EL USO DEL LCD 16X2 CON ARDUINO. MUESTRA UN
TEXTO QUE RECORRE
LA PANTALLA DE UN LADO A OTRO. ESTE PROGRAMA SIRVE COMO PRUEBA
DEL CORRECTO
FUNCIONAMIENTO DE NUESTRO CONEXIONADO Y TAMBIEN ILUSTRA COMO
REALIZAR OPERACIONES
CON EL CURSOR, BORRAR LA PANTALLA Y MOSTRAR CADENAS DE TEXTO.
*/
#include <LiquidCrystal.h>
void setup()
{
// INDICAMOS QUE TENEMOS CONECTADA UNA PANTALLA DE 16X2
lcd.begin(16, 2);
// MOVER EL CURSOR A LA PRIMERA POSICION DE LA PANTALLA Y BORRAR
(0, 0)
lcd.clear();
// IMPRIMIR CADENA EN LA PRIMERA POSICION
lcd.print(" GEEKFACTORY.MX ");
// ESPERAR UN SEGUNDO
delay(1000);
}
void loop()
{
// BORRAMOS TODA LA PANTALLA PARA ACTUALIZARLA CADA SEGUNDO
lcd.clear();
// IMPRIMIR UN ENCABEZADO
lcd.print(" POTENCIOMETRO ");
Cada carácter se define como un grupo de 8 bytes que se envían a la memoria CGRAM. Por
ejemplo, podemos crear un icono con una carita feliz de la siguiente forma:
#include <LiquidCrystal.h>
byte sad[8] = {
0b00000000,
0b00001010,
0b00001010,
0b00001010,
0b00000000,
0b00001110,
0b00010001,
0b00000000,
};
byte body[8] = {
0b00001110,
0b00001110,
0b00000100,
0b00011111,
0b00000100,
0b00001010,
0b00010001,
0b00000000,
};
byte arrowr[8] = {
0b00001000,
0b00000100,
0b00000010,
0b00011111,
0b00000010,
0b00000100,
0b00001000,
0b00000000,
};
byte arrowu[8] = {
0b00000100,
0b00001110,
0b00010101,
0b00000100,
0b00000100,
0b00000100,
0b00000100,
0b00000000,
};
byte arrowd[8] = {
0b00000100,
0b00000100,
0b00000100,
0b00000100,
0b00010101,
0b00001110,
0b00000100,
0b00000000,
};
byte arrowl[8] = {
0b00000010,
0b00000100,
0b00001000,
0b00011111,
0b00001000,
0b00000100,
0b00000010,
0b00000000,
};
void setup()
{
// INDICAMOS QUE TENEMOS CONECTADA UNA PANTALLA DE 16X2
lcd.begin(16, 2);
void loop()
{
// NO HACEMOS NADA EN EL LOOP
}
Conclusión
En este artículo aprendimos a cablear una pantalla LCD 16X2 con Arduino en modo de 4
bits
Aprendimos que una pantalla puede usar un mínimo de 6 pines de conexión con el
microcontrolador
Realizamos un programa que muestra el valor leído por un sensor en una pantalla LCD de
16×2 con Arduino
Exploramos las posibilidades que ofrecen los caracteres personalizados
Mencionamos la posibilidad de conectar este tipo de display a través del bus I2C