Conexión LCD con Arduino

10
Unidad IV Visualización de datos o escritura mediante una pantalla LCD.

Transcript of Conexión LCD con Arduino

Unidad IV

Visualización de datos o escritura mediante una

pantalla LCD.

LCD• En muchos casos, la señalización de estados

de nuestros proyectos mediante diodos LED resulta insuficiente. Una alternativa muy profesional y económica (y de fácil implementación) es la utilización de displays alfanuméricos LCD.

• Existen en el mercado una enorme variedad de pantallas de cristal liquido (Liquid Cristal Display, o LCD), de un precio accesible, con características comunes en cuanto a la interfaz y programación.

Funcionamiento• Pines 1,2 y 3: Estos pines están dedicados a la alimentación y contraste del LCD. Efectivamente, el pin 1 (VSS) es el que se debe conectar al negativo (masa) de la alimentación, y el pin 2 (Vdd/Vcc) es el que va unido al positivo (5 voltios).

El pin 3 permite el ajuste del contraste del panel. Se puede unir al pin 1 mediante una resistencia de 220 ohms para obtener un contraste adecuado (pero fijo) o bien utilizar un potenciómetro o preset de 10 KOhm para variar el contraste a gusto

• Pines 4,5,6:Estos pines son de alguna manera los que controlan el funcionamiento del display. El pin 4, también llamado RS (Registration Select) es el que le indica al controlador interno del LCD que el valor presente en el bus de datos es un comando (cuando RS=0) o bien un carácter para representar (cuando RS=1).

• El pin 5 (“R/W” por “Read/Write” o “Leer/Escribir”) permite decidir si queremos enviar datos al display (R/W=0) o bien nos interesa leer lo que el display tiene en su memoria o conocer su estado (R/W=1).

• Por ultimo, el pin 6 (E por “Enable” o “habilitado”) es el que selecciona el display a utilizar. Es decir, podemos tener varios LCD conectados a un mismo bus de datos (pines 7-14) de control, y mediante E seleccionar cual es el que debe usarse en cada momento.

• Pines 7, 8, 9, 10, 11, 12, 13, 14: Estos ocho pines son el “bus de datos” del controlador de la pantalla. Llamados DB0-DB7 son los encargados de recibir (o enviar) los comandos o datos desde o hacia el display. DB0 es el bit de menor peso y DB7 es el más significativo.

• Estos displays soportan dos modos de trabajo: en uno de ellos reciben en DB0-DB7 los 8 bits del dato, y en el otro, llamado “modo de 4 bits” reciben los datos en dos mitades (nibbles) por los pines DB4-DB7, en dos pasos sucesivos. Si bien esto puede complicar ligeramente la programación, supone un ahorro de 4 pines en el bus de datos, y esto en microcontroladores con pocos pines de I/O es muy útil.

• Por ultimo, los pines 15 y 16 son los que se utilizan para alimentar el (o los) LEDs de fondo de la pantalla, que brindan la iluminación (backlight). El pin 15 debe ser conectado a 5 voltios y el 16 al negativo o masa de la fuente. En estas condiciones, la luz de fondo esta encendida a 100% de su brillo. Nuevamente, se puede utilizar un potenciómetro o preset para ajustar el brillo. Como una nota curiosa,

muy frecuentemente estos dos pines están ubicados ANTES del pin 1 (ver esquema). Debemos asegurarnos de cual es su posición consultando la hoja de datos del fabricante o la serigrafía que existe sobre la placa del LCD.

Librería Liquid Crystal Display• Esquema en el Arduino

“Hello World”• Para mostrar datos en nuestro

programa, usaremos la librería Liquid Crystal la cual se declara de la siguiente manera: #include<LiquidCrystal.h>

• Y declaramos los pines a usar LiquidCrystal lcd( , , , , , ,); El Arduino tiene predefinido los pines del LCD, como se muestra a continuación:

Código• lcd.begin(16,2);Establece el numero de columnas y filas a usar en el LCD(columnas, filas) • lcd.print("HOLA MUNDO");Imprime un mensaje en el LCD

Código• lcd.setCursor(0,1); Establece el inicio en la pantalla LCD de nuestro mensaje (columnas , filas)

• lcd.print(millis()/1000); Imprime el numero de segundos desde que el programa comenzó