MENEJO LCD GRAFICA (GLCD)


Esta LCD grafica es monocromática y de 128 x 64 pixeles, la  GLCD tiene un funcionamiento diferente a las LCD alfanuméricas,  estas últimas poseen internamente predefinidos todos los caracteres alfanuméricos, y por medio de su código ASCII se logran visualizar, por el contrario en una GLCD lo que se tiene es una matriz de 64 x 128  puntos y el usuario define la imagen a visualizar, por medio de los datos obtenidos del diseño de dicha imagen.
A simple vista se ve un poco complejo, debido a que por mínima que sea la imagen se debe sacar sus datos en binario para poder visualizarla pixel por pixel, afortunadamente la librería proporcionada en C, ya posee funciones para imágenes predefinidas que ayudan a realizar tareas de forma más sencilla. 

   

Al momento de conectar la GLCD hay que tener mucho cuidado pues son bastante delicadas, la distribución de pines y los puertos utilizados por la librería GLCD.C es la siguiente:

PIN1: GND
PIN2: VCC (5V)
PIN3: V0 (Voltaje de Ajuste)
PIN4: D/I (Control Datos o Instrucciones)
PIN5: R/W (lectura o Escritura)
PIN6: E (Habilitación de la GLCD)
PIN7 – PIN14: Bus de Datos
PIN15: CS1 (Chip Selec 1)
PIN16: CS2 (Chip Selec 2)
PIN17: RST (Reset)
PIN18: VEE (Voltaje Negativo para el Ajuste de Contraste)
PIN19: A (Ánodo de la luz de fondo)
PIN20: K (Cátodo de la luz de fondo)




La librería utilizada para el manejo de la LCD grafica es la GLCD.C, dicha librería posee las siguientes funciones:

GLCD_INIT (ON)
Inicializa la GLCD

GLCD_LINE ( X1 , Y1 , X2 , Y2 ,  COLOR)
Dibuja una línea entre la coordenada X1 , Y1  y la coordenada X2 , Y2 ,con un color determinado, si color = ON lo dibuja en negro y si color = OFF lo dibuja en blanco, también se pueden utilizar el 1 y el 0 respectivamente.


GLCD_PIXEL (X , Y , COLOR)
Dibuja un pixel en la coordenada  X , Y de un color determinado (Blanco o Negro)

GLCD_RECT ( X1 , Y1 , X2 , Y2 , FILL , COLOR)
Dibuja un rectángulo con vértices entre la coordenada X1 , Y1  y la coordenada X2 , Y2 , con un color determinado, además tiene la función FILL que me indica, si se quiere el rectángulo relleno o solo de desea el contorno del rectángulo, puede ser YES para que sea relleno o NO para que se el contorno, de igual forma se puede utilizar el 1 y el 0 respectivamente.


GLCD_BAR ( X1 , Y1 , X2 , Y2 , WIDTH , COLOR)
Dibuja una barra entre la coordenada X1 , Y1  y la coordenada X2 , Y2 ,con un color determinado, además tiene la función WIDTH que me indica el ancho de la barra en pixeles, hay que tener en cuenta que las coordenadas son el centro de la barra y esta tiene la propiedad que siempre es rellena y también se puede dibujar en diagonal.


GLCD_CIRCLE ( X , Y , Radio , FILL , COLOR)
Dibuja un circulo con centro en la coordenada X , Y  de un radio determinado, dado en pixeles, la función FILL me determina si el circulo es relleno o únicamente el contorno y el color conserva las mismas propiedades de las funciones anteriores. 


GLCD_FILLSCREEN (COLOR)
Dibuja toda la pantalla de un color determinado, ON de negro y OFF de blanco.

GLCD_TEXT57 (X , Y , TEXT, SIZE , COLOR)
Escribe texto iniciando en la posición X , Y con un tamaño predeterminado de 5 x 7 pixeles, el cual se puede ampliar con la función size donde 1 es el tamaño predeterminado, 2 es el doble, 3 el triple. Hay que tener en cuenta que la función TEXT debe ir asignada a un vector tipo char.
Ejemplo:
CHAR  MENSAJE [ 4 ] = ‘’HOLA’’ 
GLCD_TEXT57(2 , 2 , MENSAJE , 1 , 1);


Puesto que en esta LCD se pueden dibujar diferentes graficas, también se logra pasar imágenes jpg, hay que tener en cuenta que toca pasarlas a  pixeles primero y de esto se obtiene una tabla con todos los valores de la imagen, para este trabajo existen muchos programas, uno de los más utilizados es el Bitmap2LCD, el cual me acepta una imagen y me la convierte a una tabla de datos que simplemente pegamos en el código. Después de tener la tabla de datos, se necesita un código para tomar dato por dato y visualizar todos los pixeles.   

DESCARGAR EJEMPLO

DESCARGAR BITMAP

1 comentario:

  1. Excelente informacion, felecitaciones y Gracias por compartir tus amplios conocimientos, de nuevo mil Gracias. Sigue adelante

    ResponderEliminar