Anda di halaman 1dari 26

Librera LiquidCrystal

Tutorial en construccin




Contenidos
1. 1 Conexin
2. 2 Print
3. 3 Begin
4. 4 Clear
5. 5 Home
6. 6 Write
7. 7 Blink
8. 8 Cursor
9. 9 Display
10. 10 Text Direction
11. 11 Auroscroll
12. 12 SetCursor
13. 13 Scroll
14. 14 CreateChar


La librera esta diseada para todos los LCD que lleven un chip Hitachi HD44780 , estos
LCD son lo ms comunes de encontrar en las tiendas de electrnica y pueden reconocerse
por controlarse desde sus 16 patitas.

Conexin

Las patillas tienen estas funciones:
N Pin Nombre Funcin
1 GND Tierra
2 Vcc 5V
3 Contraste Regula el contraste de la pantalla. Esto se puede hacer con el pwn de
Arduino o con este circuito
4 RS Seleccin 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

Y la forma de conectarlas a Arduino seria esta:
Arduino LCD
2 4
3 5
4 6
5 3 (Si se quiere controlar as el
contraste)
9 11
10 12
11 13
12 14



Estas son las funciones de la librera LiquidCrystal

Print

Descripcin:
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 tuvisemos 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:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);
void setup(){
}
void loop(){
lcd.print('HOLA MUNDO');
}
Begin

Descripcin:
Esta funcin sirve para especificar el tamao de nuestro Display.

Sintaxis

lcd.begin(columnas,filas)

Parmetros:

Columnas: Numero de columnas que tiene nuestro LCD
Filas: Numero de filas que tiene nuestro LCD

Ejemplo

//Para un display de 2x16
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);
void setup(){

lcd.begin(16,2);
}
void loop(){
lcd.print('HOLA MUNDO');
}
Clear

Descripcin:
Esta funcin borra todo lo que estuviese escrito en nuestro LCD

sintaxis:
lcd.clear()

Ejemplo:

#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);
void setup(){

lcd.begin(16,2);
}
void loop(){
//escribimos un texto
lcd.print('HOLA MUNDO');
//Esperamos
delay(1000);
//Y lo borramos
lcd.clear();
}
Home

Descripcin:

Coloca el cursor en la esquina superior derecha del display.

Sintaxis:
lcd.home();

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);
void setup(){

lcd.begin(16,2);
}
void loop(){
//escribimos un texto
lcd.print('HOLA MUNDO');
//Esperamos
delay(1000);
//volvemos al principio del display
lcd.home();
//volvemos a escribir encima
lcd.print('Que gusto verte');
}
Write

Descripcin:

Escribe un carcter en el Display.

Sintaxis:

lcd.write(caracter);

Parmetros:

variable lcd
carcter: el carcter que queremos mostrar por pantalla.

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);
void setup()
{
lcd.begin(16,2);
}

void loop()
{
if (Serial.available()) {
lcd.write('a');
}
}
Blink
Descripcin:
Muestra un cursor con forma de bloque, como el que solan mostrar algunos
ordenadores antiguos.
Sintaxis:

lcd.blink()
lcd.noBlink()

Ejemplo
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA MUNDO");
}

void loop() {
// Quitamos el Blink
lcd.noBlink();
//Hacemos una espera para poder ver el efecto
delay(3000);
// Activamos el Blink
lcd.blink();
//Hacemos una espera para poder ver el efecto
delay(3000);
}
Cursor

Descripcin:
Muestra un cursor con forma de guion bajo.
Sintaxis:

lcd.Cursor()
lcd.noCursor()

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA MUNDO");
}

void loop() {
// Activamos la visualizacin del cursor
lcd.noCursor();
//Hacemos una pausa para ver el efecto
delay(500);
// Desconectamos la visualizacin del cursor
lcd.cursor();
//Hacemos una pausa para ver el efecto.
delay(500);
}
Display

Descripcin:

Esta funcin 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 informacin que estbamos 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 energa. podramos apagalo tras un periodo de inactividad
y volver a encenderlo exactamente en el mismo sitio cuando el usuario vuelva a presionar
algn botn.

Sintaxis:
lcd.display()
lcd.noDisplay()

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA MUNDO");
}

void loop() {
// Apagamos el Display:
lcd.noDisplay();
delay(500);
// Encendemos el Display:
lcd.display();
delay(500);
}
Text Direction

Descripcin:

rightToLeft() Cuando se escribe, las letras aparecen a la izquierda del cursor. Es
como si en un editor de textos tuvisemos el texto alineado a la derecha.
leftToRight() Al contrario que el anterior, las letras aparecen a la derecha del
cursor, la sensacin que da es la de alineacin a la izquierda.

Sintaxis:

lcd.leftToRight()
lcd.rightToLeft()

Ejemplo:

#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA");
}

void loop() {
//Hacemos que escriba a la izquierda del cursor.
lcd.rightToLeft();
lcd.print("izq");

delay(500);

//Hacemos que escriba a la derecha.
lcd.leftToRight();
lcd.print("dcha");
delay(500);
}

Auroscroll

Descripcin:
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 aade
una letra.
noAutoscroll() apaga el desplazamiento

Sintaxis:
lcd.autoscroll()
lcd.noAutoscroll()

Ejemplo:

//Este ejemplo esta inspirado en el ejemplo que facilita
www.arduino.cc entre sus tutoriales.

#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);


void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA");
}

void loop() {
// Nos colocamos en la esquina superior izquierda
lcd.setCursor(0, 0);
// Escribimos los numeros del 0 al 9
for (int numero = 0; numero < 10; numero++) {
lcd.print(numero);
delay(500);
}

// Nos dirimos a la esquina inferior derecha.
lcd.setCursor(16,1);
// activamos el autoscroll para que mueva los caracteres
segun escribimos.
lcd.autoscroll();
// volvemos a escribir los numeros del 0 al 9
for (int numero = 0; numero < 10; numero++) {
lcd.print(numero);
delay(500);
}

}

SetCursor

Descripcin
Esta funcin sirve para posicionar el cursor del LCD, o lo que es lo mismo, para
decir donde queremos escribir cada vez.

El primer parmetro del parntesis es la posicin en X ( es decir, en horizontal, ms
a la izquierda o ms a la derecha) El segundo es la posicin en Y ( ms arriba o ms
abajo).


Por lo tanto, en un Display de 2x16 podremos poner como primer parmetro en el
parntesis un numero del 0 al 15 (cuanto ms alto el numero, mas a la derecha) y
en el segundo un numero 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(fila, columna);

Ejemplo:
Este Sketch muestra la palabra Hola en distintas posiciones del Display.
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria
LiquidCrystal para poder usarla, y le pasamos la
configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA");
}

void loop() {
//Empezamos en la esquina superior izquierda
lcd.setCursor(0,0);
lcd.print("HOLA");
delay(500);
//Nos movemos a la posicin 5 en la fila de abajo
lcd.setCursor(5,1);
lcd.print("HOLA");
delay(500);
//Ahora a la 10 de la fila de arriba
lcd.setCursor(10,0);
lcd.print("HOLA");
delay(500);
//Esquina inferior izquierda
lcd.setCursor(0,2);
lcd.print("HOLA");
delay(500);
//octava posicin, primera fila
lcd.setCursor(8,0);
lcd.print("HOLA");
delay(500);
//Tercera posicion de la primera fila
lcd.setCursor(3,0);
lcd.print("HOLA");
delay(500);
//Misma posicin en horizontal, pero en la segunda fila
lcd.setCursor(0,1);
lcd.print("HOLA");
delay(500);
//En la diagonal con respecto al anterior
lcd.setCursor(11,0);
lcd.print("HOLA");
delay(500);
}
Este otro muestra el numero de la fila en la que se encuentra.

#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria
LiquidCrystal para poder usarla, y le pasamos la
configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

//Creamos las constantes de los limites del Display, es
importante recordar que EMPEZAMOS A CONTAR DESDE 0, NO
DESDE 1 COMO ESTAMOS ACOSTUMBRADOS.

//Creamos una constante, una con el numero de filas que
tiene nuestro Display.

const int numFilas = 15;

//Creamos otra con el numero de columnas.
const int numColumnas =1;
void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA");
}

void loop() {
// Con un bucle for vamos recorriendo todas las
columnas.
for (int columna = 0; columna < numColumnas; columna++){
//Un segundo bucle recorre las filas.
for (int fila = 0; fila < numFilas; fila++) {
//Colocamos el cursos donde corresponde.
lcd.setCursor(fila,0);
//Mostramos la posicion en la que estamos, para ello
utilizaremos la misma variable que cuenta las vueltas
que da el bucle, ya que empieza y acaba en los limites
del display
lcd.print(fila);
//Una pequea pausa para que veamos como aparecen poco a
poco.
delay(500);
}
}
}
Scroll

Descripcin:
Desplaza el texto escrito en el Display.

ScrollDisplayLeft(): Desplaza el texto hacia la izquierda.
ScrollDisplayRight() : Desplaza el texto hacia la derecha.

Sintaxis:
lcd.ScrollDisplayLeft()
lcd.ScrollDisplayRight()

Ejemplo:

#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria
LiquidCrystal para poder usarla, y le pasamos la
configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);


void setup() {
// Escribimos un texto en el LCD.
lcd.print("HOLA");
}

void loop() {
lcd.print("A");
//Este bucle "arrastra" la A de un lado al otro del
display, una posicion cada segundo.
for (int mover= 0; mover <15; mover++){
lcd.scrollDisplayLeft();
delay(1000);
}

//Como hemos dejado la A en el extremo derecho de la
pantalla, la tomamos desde ah y la arrastramos a la
izquierda 1 posicin cada segundo hasta el comienzo

for (int mover= 15; mover >0; mover--){
lcd.scrollDisplayRight();
delay(1000);
}

}



CreateChar

Descripcin:
La idea de esta funcin es la de crear emoticonos en el LCD, puedes crear un
mximo de 8, que quedan numerados del 0 al 7 y despus utilizarlos mediante esta
funcin.

Sintaxis:

lcd.createChar(num, nombre)

Parmetros:

num: Que carcter de los creados quieres usar.
Nombre: nombre que se le ha puesto al emoticono

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria
LiquidCrystal para poder usarla, y le pasamos la
configuracin,
//se corresponden con (rs,rw,enable,d1,d2,d3,d4)

LiquidCrystal lcd(2,3,4,9,10,11,12);

//Creamos el emoticono, en este caso una carita sonriente.
byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};

void setup() {
//asignamos el valor 0 al emoticono smiley
lcd.createChar(0, smiley);
//Configuramos el tamao del display
lcd.begin(16, 2);
//mostramos en pantalla el emoticono.
lcd.write(0);
}

void loop() {}
Todo el software, as como los diseos,esquemas y circuitos contenidos en este site se encuentran bajo la misma
licencia, el autor y los colaboradores no se hacen responsables de su uso y/o funcionamiento.
Todo el cdigo esta bajo licencia de la Creative Commons.

Este obra de CrakerNano est bajo una licencia Creative Commons Reconocimiento-
NoComercial 3.0 Unported.