Você está na página 1de 17

Controlar un Display LCD

La Librería LiquidCrystal

La librería esta diseñada para todos los LCD que lleven un chip Hitachi HD44780 , estos LCD
son lo más comunes de encontrar en las tiendas de electrónica y pueden reconocerse por
controlarse desde sus 16 patitas.

Índice

 El Display
 Conexion
 Print
 Begin
 Clear
 Home
 Write
 Blink
 Cursor
 Display
 TextDirection
 Autoscroll
 SetCursor
 Scroll
 CreateChar

El Display LCD
Existen muchos tipos de LCD (distintos tamaños,colores,iluminados, sin iluminar...) Pero el
funcionamiento general de todos es el mismo.

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 1


En este tutorial nos centraremos en el control de un LCD de 16pixeles de largo por 2 de alto.

Explicado muy brevemente y sin entrar en profundidad en el tema, podemos decir que un lcd
de este tipo cuenta con cristal líquido en cada uno de sus pixeles. Para iluminar alguno de ellos
lo que se hace es aplicar un campo eléctrico en la zona deseada, de esta forma el cristal
líquido se polariza y la percibimos de otro color.

La gestión de crear el campo y delimitar el número de pixeles necesarios para el caracter que
queremos mostrar la realiza un controlador, generalmente un hitachi HD44780, nosotros
solamente tenemos que pasarle algunos parámetros, como el lugar donde escribirlo y, claro
está, el caracter en si.

Conexión
Las patillas tienen estas funciones:

NºPin Nombre Función


1 GND Tierra
2 Vcc 5V
Regula el contraste de la pantalla. Esto se puede hacer con el pwn de
3 Contraste
Arduino o con este circuito
4 RS Selección del registro a leer/Escribir
5 R/W Selecciona si vamos a leer o escribir
6 E Enable
7 DB0 Datos
8 DB1 Datos
9 DB2 Datos
10 DB3 Datos
11 DB4 Datos
12 DB5 Datos
13 DB6 Datos
14 DB7 Datos
15
16

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 2


Y la forma de conectarlas a Arduino seria esta:

Arduino LCD
7 4
GND 5
8 6
3 (Si se quiere controlar asi el contraste)
9 11
10 12
11 13
12 14

Esta Librería, llamada LiquidCrystal, nos proporciona gran número de herramientas para
trabajar con un LCD. Estas son las funciones que se incluyen en la versión 1.0.

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 3


Print
Descripción

Escribe un texto en el LCD

Sintaxis

lcd.print(textoParaMostrar);

lcd.print(textoParaMostrar,BASE);

Parametros

textoParaMostrar: el texto que queremos que aparezca en la pantalla. Puede ser mediante
una variable en la que lo tuviésemos almacenado o poniendo el texto directamente entre
comillas simples.

BASE: Esto es OPCIONAL y sirve para definir el formato en el que queremos mostrarlo. Puede
ser:

 BIN: Binario (base 2)


 DEC: Decimal (base 10)
 OCT: Octal (base 8)
 HEX: Hexadecimal. (base 16).

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>;
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. lcd.print(“HOLA MUNDO”);
8. }
9. void loop()
10. {
11.
12. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 4


Begin
Descripción

Esta función sirve para especificar el tamaño de nuestro Display.

Sintaxis

lcd.begin(columnas,filas)

Parametros

Columnas: Numero de columnas que tiene nuestro LCD.

Filas: Numero de filas que tiene nuestro LCD.

Ejemplo
view plainprint?

1. //Para un display de 16x2


2. #include <LiquidCrystal.h>;
3. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
4. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
5. LiquidCrystal lcd(7,8,9,10,11,12);
6. void setup()
7. {
8. lcd.begin(16,2);
9. lcd.print(“HOLA MUNDO”);
10. }
11. void loop()
12. {
13.
14. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 5


Clear
Descripción

Esta función borra todo lo que estuviese escrito en nuestro LCD

Sintaxis

lcd.clear()

Parámetros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. lcd.begin(16,2);
8. }
9. void loop()
10. {
11. //escribimos un texto
12. lcd.print(“HOLA MUNDO”);
13. //Esperamos
14. delay(1000);
15. //Y lo borramos
16. lcd.clear();
17. delay(1000);
18. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 6


Home

Descripción

Coloca el cursor en la esquina superior derecha del display.

Sintaxis

lcd.home();

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. lcd.begin(16,2);
8. }
9. void loop()
10. {
11. //escribimos un texto
12. lcd.print(“HOLA MUNDO”);
13. //Esperamos
14. delay(1000);
15. //volvemos al principio del display
16. lcd.home();
17. //volvemos a escribir encima
18. lcd.print(“Que gusto verte”);
19. delay(1000);
20. lcd.clear();
21. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 7


Write
Descripción

Escribe un carácter en el Display.

Sintaxis

lcd.write(caracter);

Parametros

variable lcd

carácter: el carácter que queremos mostrar por pantalla

Ejemplo
view plainprint?

1.
2. #include <LiquidCrystal.h>
3. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
4. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
5. LiquidCrystal lcd(7,8,9,10,11,12);
6. void setup()
7. {
8. lcd.begin(16,2);
9. Serial.begin(9600);
10. }
11. void loop()
12. {
13. if (Serial.available())
14. {
15. lcd.write(Serial.read());
16. }
17. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 8


Blink
Descripción

Muestra un cursor con forma de bloque, como el que solían mostrar algunos ordenadores
antiguos.

Sintaxis

lcd.blink()

lcd.noBlink()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. // Escribimos un texto en el LCD.
8. lcd.begin(16,2);
9. lcd.print("HOLA MUNDO");
10. }
11. void loop()
12. {
13. // Quitamos el Blink
14. lcd.noBlink();
15. //Hacemos una espera para poder ver el efecto
16. delay(3000);
17. // Activamos el Blink
18. lcd.blink();
19. //Hacemos una espera para poder ver el efecto
20. delay(3000);
21. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 9


Cursor
Descripción

Muestra un cursor con forma de guion bajo.

Sintaxis

lcd.Cursor()

lcd.noCursor()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. // Escribimos un texto en el LCD.
8. lcd.begin(16,2);
9. lcd.print("HOLA MUNDO");
10. }
11. void loop()
12. {
13. // Activamos la visualización del cursor
14. lcd.noCursor();
15. //Hacemos una pausa para ver el efecto
16. delay(500);
17. // Desconectamos la visualización del cursor
18. lcd.cursor();
19. //Hacemos una pausa para ver el efecto.
20. delay(500);
21. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 10


Display
Descripción

Esta función permite encender y apagar el Display, pero sin perder lo que estaba mostrando.
Es decir, que si mostramos por pantalla un texto y acto seguido hacemos un “noDisplay()”
dejaremos de ver la información que estábamos mostrando, pero reaparecerá al hacer un
“Display()” sin necesidad de volver a mandar el texto.

Esto puede ser interesante por ejemplo si estamos por ejemplo mostrando un menú por un
Display y queremos ahorrar energía. Podríamos apagarlo tras un periodo de inactividad y
volver a encenderlo exactamente en el mismo sitio cuando el usuario vuelva a presionar algún
botón.

Sintaxis

lcd.display() lcd.noDisplay()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. // Escribimos un texto en el LCD.
8. lcd.begin(16,2);
9. lcd.print("HOLA MUNDO");
10. }
11. void loop()
12. {
13. // Apagamos el Display:
14. lcd.noDisplay();
15. delay(1000);
16. // Encendemos el Display:
17. lcd.display();
18. delay(1000);
19. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 11


Text Direction
Descripción

rightToLeft(): Cuando se escribe, las letras aparecen a la izquierda del cursor. Es como si en
un editor de textos tuviésemos el texto alineado a la derecha.

leftToRight(): Al contrario que el anterior, las letras aparecen a la derecha del cursor, la
sensación que da es la de alineación a la izquierda.

Sintaxis

lcd.leftToRight()

lcd.rightToLeft()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(7,8,9,10,11,12);
5. void setup()
6. {
7. // Escribimos un texto en el LCD.
8. lcd.begin(16,2);
9. lcd.print("HOLA");
10. }
11. void loop()
12. {
13. //Hacemos que escriba a la izquierda del cursor.
14. lcd.setCursor(10,0);
15. lcd.rightToLeft();
16. lcd.print("adreiuqzi ");
17. delay(2000);
18. //Hacemos que escriba a la derecha.
19. lcd.setCursor(10,1);
20. lcd.leftToRight();
21. lcd.print("derecha");
22. delay(1000);
23. lcd.clear();
24. delay(2000);
25.
26. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 12


Autoscroll
Descripción

Este programa de ejemplo muestra como usar las funciones autoscroll() y noAutoscroll() para
mover todo el texto de la pantalla a la izquierda o a la derecha.

autoscroll() mueve todo el texto un espacio a la izquierda cada vez que se añade una letra.

noAutoscroll() apaga el desplazamiento

Sintaxis

lcd.autoscroll()

lcd.noAutoscroll()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla,
y le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4.
5. LiquidCrystal lcd(7,8,9,10,11,12);
6. // Crea un Objeto LC. Parametros: (rs, enable, d4, d5, d6, d7)
7.
8. void setup()
9. {
10. lcd.begin(16,2);
11. // Inicializa la interface para el LCD screen, and determina sus
dimensiones (ancho y alto) del display
12. lcd.clear(); // Limpia la pantalla
13. lcd.setCursor(1,0); // setea el cursor a la columna 1, fila 0
14. lcd.print("Bienvenido a la E.E.T.P. N565"); // ingresamos nuestro texto
15. lcd.setCursor(1,1); // setea el cursor a la columna 1, fila 1
16. lcd.print(" Prof. Lucas Ghilardi"); //ingresamos nuestro
texto
17. }
18.
19. void loop()
20. {
21. lcd.setCursor(16,2); // setea el cursor fuera del conteo del display
22. lcd.autoscroll(); // Setea el display para scroll automatico
23. lcd.print(" "); // imprime un character en blanco
24. delay(700); // setea el tiempo del desplazamiento del caracter
25. }

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 13


SetCursor
Descripción

Esta función sirve para posicionar el cursor del


LCD, o lo que es lo mismo, para decir dónde
queremos escribir cada vez.

El primer parámetro del paréntesis es la


posición en X (es decir, en horizontal, más a la
izquierda o más a la derecha). El segundo es la
posición en Y (más arriba o más abajo).

Por lo tanto, en un Display de 16x2 podremos poner como primer parámetro en el paréntesis
un número del 0 al 15 (cuanto más alto el número, más a la derecha) y en el segundo un
número del 0 (arriba) al 1 (abajo)

Por ejemplo:

lcd.setCursor(0, 0); // arriba a la izquierda

lcd.setCursor(15, 0); // arriba a la derecha

lcd.setCursor(0, 1); // abajo a la izquierda

lcd.setCursor(15, 1); // abajo a la derecha

Sintaxis

lcd.setCursor(columan,fila);

Parametros

columna: La columna del pixel que queremos seleccionar.

fila: La Fila del pixel que deseamos seleccionar.

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 14


Ejemplo
1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4.
5. LiquidCrystal lcd(7,8,9,10,11,12);
6.
7. void setup()
8. {
9. lcd.begin(16,2);
10. }
11.
12. void loop()
13. {
14.
15. lcd.setCursor(0,0); //Esquina izquierda fila 0
16. lcd.print("HOLA");
17. delay(1000);
18.
19. lcd.setCursor(5,0); //Nos movemos a la posición 5 en la fila de abajo
20. lcd.print("HOLA");
21. delay(1000);
22.
23. lcd.setCursor(10,0); //Ahora a la 10 de la fila de arriba
24. lcd.print("HOLA");
25. delay(1000);
26.
27. lcd.setCursor(0,1); //Esquina izquierda fila 1
28. lcd.print("HOLA");
29. delay(500);
30.
31. lcd.setCursor(5,1);
32. lcd.print("HOLA");
33. delay(500);
34.
35. lcd.setCursor(10,1);
36. lcd.print("HOLA");
37. delay(500);
38.
39. }

Scroll
Descripción

Desplaza el texto escrito en el Display.

ScrollDisplayLeft(): Desplaza el texto hacia la izquierda.

ScrollDisplayRight() : Desplaza el texto hacia la derecha.

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 15


Sintaxis

lcd.ScrollDisplayLeft()

lcd.ScrollDisplayRight()

Parametros

SIN PARAMETROS

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2.
3. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
4. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
5.
6. LiquidCrystal lcd(2,3,4,9,10,11,12);
7.
8. void setup() {
9. // Escribimos un texto en el LCD.
10. lcd.print("HOLA");
11. }
12.
13. void loop() {
14. lcd.print("A");
15. //Este bucle "arrastra" la A de un lado al otro del display, una posicion
cada segundo.
16. for (int mover= 0; mover <15; mover++){
17. lcd.scrollDisplayLeft();
18. delay(1000);
19. }
20. //Como hemos dejado la A en el extremo derecho de la pantalla, la tomamos
desde ahí y la arrastramos a la izquierda 1 posición cada segundo hasta el com
ienzo
21. for (int mover = 15; mover <0; mover--){
22. lcd.scrollDisplayRight();
23. delay(1000);
24. }
25. }

CreateChar
Descripción

La idea de esta función es la de crear “emoticonos” en el LCD, puedes crear un máximo de 8,


que quedan numerados del 0 al 7 y después utilizarlos mediante esta función.

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 16


Sintaxis

lcd.createChar(num, nombre)

Parametros

num: Que carácter de los creados quieres usar.

Nombre: nombre que se le ha puesto al emoticono

Ejemplo
view plainprint?

1. #include <LiquidCrystal.h>
2. //Creamos el objeto "lcd" de de la libreria LiquidCrystal para poder usarla, y
le pasamos la configuración,
3. //se corresponden con (rs,rw,enable,d1,d2,d3,d4)
4. LiquidCrystal lcd(2,3,4,9,10,11,12);
5.
6. //Creamos el emoticono, en este caso una carita sonriente.
7.
8. byte smiley[8] = {
9. B00000,
10. B10001,
11. B00000,
12. B00000,
13. B10001,
14. B01110,
15. B00000,
16. };
17.
18. void setup() {
19. //asignamos el valor 0 al emoticono smiley
20. lcd.createChar(0, smiley);
21. //Configuramos el tamaño del display
22. lcd.begin(16, 2);
23. //mostramos en pantalla el emoticono.
24. lcd.write(0);
25. }
26.
27. void loop() {}

Prof. Lucas G. Ghilardi – Electrónica 2016 - V 0.2 Página 17

Você também pode gostar