- Material requerido
- Diagrama de circuito
- LCD gráfico de 128 * 64
- Conversión de imagen en código hexadecimal:
- Código Arduino y explicación de trabajo
Hay muchos tipos de pantallas LCD que se utilizan en proyectos electrónicos. Ya hemos usado 16X2 LCD en muchos de nuestros proyectos y también usamos TFT LCD con Arduino. Puede encontrar todo nuestro proyecto relacionado con LCD 16X2 siguiendo este enlace, incluida la interfaz con 8051, AVR, Arduino y muchos más.
El LCD gráfico ST9720 es totalmente diferente de los LCD ordinarios. La pantalla LCD normal solo puede imprimir texto simple o números dentro de un tamaño fijo. Pero en las pantallas LCD gráficas tenemos 128 * 64, que es igual a 8192 puntos o 8192/8 = 1024 píxeles, por lo que, aparte de los caracteres, podemos mostrar cualquier imagen gráfica en esta GLCD.
Ya conectamos GLCD con 8051, hoy conectaremos LCD gráfico con Arduino para mostrar texto e imágenes en él.
Material requerido
- Arduino UNO
- 128 * 64 LCD gráfico ST9720
- Potenciómetro-10k
- Cables de conexión
- Tablero de circuitos
Diagrama de circuito
LCD gráfico de 128 * 64
Esta pantalla LCD gráfica tiene un bajo consumo de energía y también es adecuada para dispositivos portátiles con batería. Tiene un amplio rango de voltaje de operación de 2.2va 5.5v y admite comunicación en serie y paralelo de 8/4 bits y viene con controlador / controlador IC ST7290 LCD. El modo de comunicación de la interfaz se puede cambiar entre paralelo y serial usando PSB PIN 15. Esta pantalla LCD gráfica tiene una función de reinicio de encendido automático y se puede controlar fácilmente mediante MCU como 8051, AVR, ARM, Arduino y Raspberry Pi.
Puede consultar la hoja de datos para obtener información detallada sobre el LCD gráfico ST7290 128 * 64
Configuración de pines
Pin No. |
Nombre de PIN |
Descripción |
1 |
Gnd |
Terminal de tierra |
2 |
Vcc |
Voltaje de suministro de entrada (2.7v a 5.5v) |
3 |
Vo |
contraste LCD |
4 |
RS |
Registrarse Seleccionar RS = 0: Registro de instrucciones RS = 1: Registro de datos |
5 |
R / W |
Control de lectura / escritura |
6 |
mi |
Habilitar |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Pines de datos (utilizados en modo de comunicación paralelo de 8/4 bits) |
15 |
PSB |
Selección de interfaz: Bajo (0) para el modo de comunicación en serie Alto (1) para el modo de bus paralelo de 8/4 bits. |
dieciséis |
CAROLINA DEL NORTE |
No conectado |
17 |
RST |
Restablecer pin |
18 |
Vout |
Salida de duplicador de voltaje LCD. VOUT ≦ 7V. |
19 |
BLA |
Suministro positivo de luz de fondo |
20 |
BLK |
Suministro negativo de retroiluminación |
Aplicaciones
- Dispositivo industrial
- Sistemas embebidos
- Seguridad
- Médico
- Equipo de mano
Conversión de imagen en código hexadecimal:
Para mostrar cualquier imagen en la pantalla LCD gráfica, necesitamos el código HEX de esa imagen, por lo que aquí hay algunos pasos para convertir la imagen en código HEX. Antes de eso, debe asegurarse de que el tamaño de la imagen no exceda los 128 * 64.
Paso 1: Disminuya el tamaño de la imagen normal a 128 * 64 o menos, lo que puede hacer con cualquier software de edición de imágenes como MS paint.
Como se muestra en la imagen de arriba, estamos configurando el ancho y el alto de la imagen en 128 * 64.
Paso 2: Luego, debe guardar la imagen en formato "image_name .bmp ".
Seleccione el formato que se muestra en la imagen de arriba y guarde el archivo para continuar con el proceso.
Paso 3: Después de guardarlo en formato ".bmp", debe convertir la imagen en código hexadecimal para imprimir. Para esto, estoy usando el software llamado GIMP 2, que convierte el archivo Bmp a código hexadecimal.
Como se muestra en la imagen de arriba, abrimos el archivo de formato ".bmp" en el software GIMP 2.
Paso 4: Después de descargar el software, abra el archivo de imagen en formato BMP que desea imprimir y luego guardar como en “ .xbm ” formato (X Después de guardarlo, abra ese archivo usando el Bloc de notas y obtendrá el código hexadecimal de la imagen.
Como se muestra en la siguiente imagen, elija la opción Exportar para guardar el archivo en formato xbm :
Seleccione el formato que se muestra en la imagen de abajo y exporte el archivo de imagen.
Después de exportar el archivo, obtendrá el archivo en formato ".xbm". Abra el archivo xbm con el Bloc de notas y obtendrá el código HEX como se muestra en la imagen a continuación.
Código Arduino y explicación de trabajo
Para conectar la pantalla LCD gráfica con Arduino, primero debemos definir la biblioteca utilizada para la pantalla LCD gráfica. Arduino no tiene esta biblioteca, debe descargar e instalar esta biblioteca desde este enlace. Entonces puede incluir la biblioteca como se muestra a continuación:
#include "U8glib.h"
Aquí, ' u8g (10) ' define la conexión del pin RS (Register Select) de la pantalla LCD gráfica con el décimo pin del Arduino UNO. El pin RS se usa como 'selección de chip' y 'Selección de registro' cuando se usa en modo serial y paralelo respectivamente. Por lo tanto, estamos usando el modo serial y el pin RS configurado en Alto (1) para el chip habilitado y Bajo (0) para el chip deshabilitado.
U8GLIB_ST7920_128X64_4X u8g (10);
Ahora, para imprimir la imagen, debemos colocar el código hexadecimal de la imagen en el siguiente código. Puede imprimir cualquier otra imagen, todo lo que necesita hacer es pegar el código hexadecimal de la imagen.
const uint8_t rook_bitmap U8G_PROGMEM = { Pegue el código hexadecimal de la imagen aquí };
Consulte el Código Arduino completo al final de este artículo.
La siguiente función se utiliza para imprimir imágenes, el comando utilizado para imprimir es “u8g.drawXBMP (x, y, ancho de imagen, alto de imagen)” . Donde, X e Y es la posición inicial de la imagen en la LCD y también necesitamos escribir el tamaño de la imagen que no debe exceder 128 * 64 y en el argumento final hemos llamado a la función en la que colocamos el código HEX de la imagen.
imagen vacía (vacía) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Hemos realizado dos funciones llamadas “dibujar” y “siguiente”, en las que el código para imprimir el contenido se escribe mediante el comando “u8g.drawStr (x, y,” abcd ”)”. Aquí, xey son la posición en la pantalla LCD donde se imprimirá el contenido y ' abcd ' es el contenido que se imprimirá.
vacío dibujar (vacío) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "RESUMEN DEL CIRCUITO"); } vacío siguiente (vacío) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfaz"); u8g.drawStr (0, 35, "LCD gráfico"); u8g.drawStr (0, 55, "con Arduino"); }
La función clearLCD () está hecha para borrar la pantalla LCD simplemente dando un valor nulo a la función.
void clearLCD () {u8g.firstPage (); hacer {} while (u8g.nextPage ()); }
Configuración de píxeles, color e intensidad mediante el código siguiente
configuración nula (nula) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // blanco} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // intensidad máxima} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // píxel encendido} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
El bucle vacío continúa imprimiendo el texto y la imagen después del retraso dado. Primero, imprimimos “Circuit Digest” usando la función de dibujo y después de 2seg. de retraso, borramos la pantalla usando la función clearLCD y luego imprimimos “ Interfaz LCD gráfica usando Arduino ” usando la siguiente función. Luego imprimimos la imagen usando la función picture () que permanecerá en la pantalla durante 3 segundos. Esto continuará hasta que se encienda la fuente de alimentación.
bucle vacío (vacío) {u8g.firstPage (); hacer {dibujar (); } while (u8g.nextPage ()); retraso (2000); clearLCD (); u8g.firstPage (); has el siguiente(); } while (u8g.nextPage ()); retraso (2000); clearLCD (); u8g.firstPage (); hacer {imagen (); } while (u8g.nextPage ()); retraso (3000); clearLCD (); retraso (50); }
Después de programar el Arduino usando el código dado, conecte el LCD gráfico según el diagrama de circuito con el Arduino y suministre el Arduino usando el Adaptador o USB. Obtendrá el contenido y la imagen impresos en la pantalla LCD gráfica, como se muestra en el video que se muestra a continuación.
También verifique la interfaz del LCD gráfico Nokia 5110 con Arduino,