INTRODUCCIÓN
Un LCD paralelo es una pequeña pantalla que suele mostrar información breve, dado su tamaño, dotado de un bus de comunicaciones paralelo de 4 u 8 bits. Suele formar parte de arquitecturas complejas, donde la información mostrada es complementaria a una pantalla principal de mayor tamaño (en ocasiones innecesaria). Los servidores y ciertos equipos técnicos suele mostrar datos del estado del equipo como el espacio disponible de un disco duro, la temperatura del sistema, información de sensores y sondas, etc.
También suelen formar parte de arquitecturas más simples, como ordenadores sencillos (Arduino) y equipos industriales o comerciales, como máquinas expendedoras de comida y/o bebida, robótica industrial, etc.
Los hay de dos tipos: Gráficos y de caracteres. Los gráficos muestran imágenes monocromas en una baja resolución. Los de caracteres son los más sencillos pues muestran nada más que eso, caracteres en una o varias líneas dependiendo del modelo.
En el presente artículo voy a abordar únicamente los de caracteres, en concreto los que cumplen las especificaciones del chip Hitachi 44780 que es uno de los más comunes.
CARACTERÍSTICAS DEL LCD
En cuanto a las características físicas del módulo, consta de una pantalla de cristal rectangular de tecnología LCD monocroma adosada a una placa de circuito impreso (generalmente de fibra de vidrio) algo más grande, donde se ubican las pistas de conexionado en uno de los bordes largos (arriba o abajo). Veamos un esquema:
Básicamente tiene 14 pines para manejarlo. Dos pines más (15 y 16) están disponibles en los modelos con iluminación. Estos últimos pueden estar seguidos de los demás y formar parte de un conjunto de 16 o también se pueden encontrar separados generalmente en un lateral de la placa, a veces incluso duplicados en ambas posiciones. Veamos un listado de la función de cada uno:
1 - Vss - GND o mása
2 - Vdd - Alimentación principal de +5v
3 - Vo - Alimentación del LCD tipicamente +5v
4 - RS - Registro de selección
5 - R/W - Selección de entrada o salida de datos
6 - E - Estrobe
7 - 14 - Bus de datos D0-D7
15 - K - Cátodo de retro-iluminación
16 - A - Ánodo de retro-iluminación
A continuación una explicación de cada uno de los pines:
1.- No hay mucho que explicar pues es la masa común para todos demás pines, salvo para retro-iluminación en algunos casos.
2.- Es la conexión principal de +5 voltios. Alimenta a la circuitería que realizará todos los temas de lógica (memoria interna y procesado de datos e instrucciones).
3.- Es una segunda toma típica de +5 voltios. En este caso sirve para la polarización de los puntos del LCD, es decir los cristales líquidos que forman la parte visible, siendo controlado por medio de un potenciómetro para variar la intensidad de este en función de la iluminación exterior (contraste).
4.- El Registro de Selección controla si lo que se envía por el bus es un dato, poniéndolo a 1, o si se trata de una instrucción, poniéndolo a 0.
5.- La señal R/W prepara el bus para leer del LCD si su valor es 1 o escribir si es puesto a 0.
6.- El Estrobe habilita el uso del LCD cuando es puesto a 1 o lo interrumpe cuando es 0, permitiendo la comunicación con este solo cuando esté habilitado.
7-14.- Estos pines son el bus de datos. El 7 es el D0 o bit menos significativo (LSB) y el 14 es el D7 o bit más significativo (MSB).
15-16.- Como he indicado el 15 es el ánodo y el 16 el cátodo. Pero no hay que fiarse pues pueden estar invertidos dependiendo del modelo. El cátodo estará conectado a la masa aunque a veces es un poco complicado detectarlo, por lo que la técnica más fiable, en ocasiones, es buscar continuidad entre este y la chapa metálica que cubre el cristal del LCD.
Aunque esta es la disposición más habitual en este tipo de LCD, hay que tener en cuenta que puede haber variantes con los pines ordenados de otra manera u otras normas. Lo ideal siempre es conseguir la información concreta del modelo que tengamos entre manos.
CONEXIÓN CON PUERTO PARALELO (LPT)
La conexión es muy sencilla. Basta con respetar el siguiente esquema:
En cuanto a la alimentación e iluminación, si dispone de ella, el esquema quedaría:
La resistencia para la iluminación (pin 15) en el ánodo es para reducir el voltaje de entrada de +5v a +4v, con un máximo de 4,2v. También se puede utilizar un potenciómetro para controlar la intensidad de luz manualmente, de la misma forma que es utilizado para la intensidad de la tinta.
¡HORROR! NO TENGO LPT
En la actualidad el puerto paralelo o LPT casi ha desaparecido de la mayoría de placas modernas para PC. Por ello resulta imposible conectar directamente un LCD de este tipo en algunos casos. Algunas placas disponen de puerto paralelo pero no tienen implementado físicamente el conector, por lo que se debe añadir uno conectado a esta por medio de un cable.
Si la placa base en cuestión no dispone de puerto paralelo tenemos algunas alternativas que paso a enumerar:
- Añadir una tarjeta LPT. Generalmente se pueden encontrar en formato PCI, aunque es verdad que cada vez se fabrican y utilizan menos. Pero no es imposible encontrarlas, ciertas tiendas, incluso por internet, pueden vendernos algunos modelos que todavía se fabrican o tienen en stock, pues en entornos industriales todavía se utilizan. Suelen ser completamente compatibles, por lo que no hará falta normalmente añadir más drivers ya que los incorpora el propio sistema operativo, sea Windows, Linux... Con esto tendremos un puerto paralelo nativo listo para ser usado de manera normal.
- Añadir un interfaz USB. Ciertas tiendas y web especializadas comercializan unos pequeños adaptadores que convierten la señal USB al paralelo que utilizan estos LCD. Suelen ser muy cómodos pues son detectados automáticamente por procedimientos Plug&Play en los sistemas operativos. También se pueden encontrar en formato cable, con el conector USB en un extremo y el Centronics en el otro para una impresora, por lo que habrá que cambiar este último conector para adaptarlo; estos son 100% compatibles ya que el sistema operativo creerá disponer así de un auténtico puerto paralelo (LPT) perfectamente válido para el software correspondiente.
- Añadir un interfaz serie. Al igual que el adaptador USB existen otros con bus serial. Estos son conectados a un puerto COM y su montaje es muy sencillo, teniendo un buen soporte por parte de los programas dedicados. No resulta fácil encontrarlo en el mercado, quizás mejor en los círculos Arduino, pero es muy sencillo construir uno casero por medio de las instrucciones suministradas en multitud de webs. Son muy pocas placas base las que no implementan bus serial, por lo que no resultará difícil la conexión del adaptador; si por casualidad no dispusiera de uno o estuviese ocupado se puede añadir también con una tarjeta PCI o USB.
PROGRAMANDO UN LCD 44780
Un dispositivo de este tipo es muy fácil de programar. Básicamente consiste el envío de dos tipos de información, instrucciones a ejecutar y datos a mostrar.
Tras iniciar el dispositivo por medio de unos determinados comandos, la pantalla queda preparada para mostrar información. Esta es únicamente a base de caracteres de un juego grabado en una ROM interna más la posibilidad de definir unos pocos ubicados en la RAM disponible, por lo que se pueden llegar a mostrar ciertos gráficos personalizando nuestros propios caracteres.
Una vez que se ha iniciado el dispositivo no hay más que enviar caracteres a la memoria RAM del LCD y serán mostrados, ya que esta funciona como un framebuffer de pantalla.
Por supuesto para realizar todas estas tareas de escritura y lectura del LCD hay que seguir unas reglas muy concretas, a parte de ceñirse a un juego de comandos que permiten ciertas funciones, como por ejemplo mostrar u ocultar la información de la pantalla.
SOFTWARE
A la hora de controlar un LCD se necesita disponer de un software. Con la documentación disponible en la sección Manuales Técnicos podemos llegar a realizar nuestros propios programas.
También existen otros ya creados que permiten controlar un LCD y mostrar la información enviada, así como ciertos efectos que adornan la visualización. Realmente no hay muchos en el mercado, limitándonos a los siguientes:
- LCD Smartie
Es un software un tanto básico, centrándose principalmente en representar el texto que se ha predefinido en varias páginas posibles con ciertos efectos. Permite una sencilla sintaxis para mostrar contenidos del sistema y de otras aplicaciones. Dispone de opciones para la configuración del tamaño del LCD y sus parámetros de conexión. Desgraciadamente parece que ya no tiene soporte, aunque se conserva la página con los contenidos.
Página oficial: LCD Smartie
- LCD Studio
Software algo sofisticado con especial atención a pantallas gráficas. Mantiene soporte en la actualidad.
Página oficial: LCD Studio
- LCDHype
Un software en apariencia bastante sofisticado, con soporte a LCD gráfico y de caracteres de varios modelos comerciales y otros DIY. Extenso foro con amplia documentación sobre el programa. En la actualidad siguen manteniendo el site y la aplicación.
Página oficial: LCDHype