Está en la página 1de 24

Funciones más interesantes: LiquidCrystal(),

begin(),

clear(),

setCursor(),

write(),

print(),

autoscroll().

Librería LiquidCrystal
Tutorial en construcción

Contenidos

1. 1 Conexión

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 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.

Conexión

Las patillas tienen estas funciones:

Nº Pin Nombre Función


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 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
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 librería LiquidCrystal


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

//Creamos el objeto "lcd" de de la libreria LiquidCrystal


para poder usarla, y le pasamos la configuración,

//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

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

Sintaxis
lcd.begin(columnas,filas)

Parámetros:
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 configuración,

//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
Descripción:
Esta función 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 configuración,

//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

Descripción:
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 configuración,

//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
Descripción:
Escribe un carácter en el Display.

Sintaxis:
lcd.write(caracter);

Parámetros:
variable lcd

carácter: el carácter 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 configuración,
//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
Descripción:
Muestra un cursor con forma de bloque, como el que solían 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 configuración,

//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

Descripción:
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 configuración,

//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 visualización del cursor

lcd.noCursor();

//Hacemos una pausa para ver el efecto

delay(500);

// Desconectamos la visualización del cursor

lcd.cursor();

//Hacemos una pausa para ver el efecto.


delay(500);

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 apagalo 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()

Ejemplo:
#include <LiquidCrystal.h>

//Creamos el objeto "lcd" de de la libreria LiquidCrystal


para poder usarla, y le pasamos la configuración,

//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

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()

Ejemplo:

#include <LiquidCrystal.h>
//Creamos el objeto "lcd" de de la libreria LiquidCrystal
para poder usarla, y le pasamos la configuración,

//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
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()

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 configuración,

//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
Descripción
Esta función sirve para posicionar el cursor del LCD, o lo que es lo mismo, para decir donde 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 2x16 podremos poner como primer parámetro en el paréntesis un
numero del 0 al 15 (cuanto más 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
configuración,

//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 posición 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 posición, 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 posición 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
configuración,
//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 pequeña pausa para que veamos como aparecen poco a


poco.

delay(500);

Scroll

Descripción:
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
configuración,

//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 posición cada segundo hasta el comienzo

for (int mover= 15; mover >0; mover--){


lcd.scrollDisplayRight();

delay(1000);

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.

Sintaxis:

lcd.createChar(num, nombre)

Parámetros:

num: Que carácter 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
configuración,

//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 tamaño del display
lcd.begin(16, 2);
//mostramos en pantalla el emoticono.
lcd.write(0);
}

void loop() {}

Todo el software, así como los diseños,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 código esta bajo licencia de la Creative Commons.

También podría gustarte