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
DESCARGAR EJEMPLO
DESCARGAR BITMAP
Excelente informacion, felecitaciones y Gracias por compartir tus amplios conocimientos, de nuevo mil Gracias. Sigue adelante
ResponderEliminar