1. LiquidCrystal lcd(12, 11, 5, 4, 3, 2): antes de la función setup(). Con esta instrucciones creamos el
objeto “lcd” que incluirá todas las funciones que vamos a comentar a continuación. Los números son
para indicarle a la librería cuales son las salidas digitales de Arduino en las que hemos conectado
los cables desde el LCD.
lcd.begin(): para especificar la configuración concreta de nuestra pantalla. Le decimos que tendrá
16 caracteres en horizontal (de 0 a 15) y 2 filas en vertical (fila inferior y=1; fila superior y=0).
lcd.setCursor(): la usamos antes de visualizar algo, para situar el cursor en la posición deseada, su
posición vendrá definida con dos coordenadas cartesianas (x,y) de los ejes
ortogonales (COLUMNA, FILA). El primer valor será para colocar el cursor en la posición de 0 a 15
COLUMNAS y el segundo para decirle si es en la FILA SUPERIOR (y=0) o en la FILA INFERIOR
(y=1).
lcd.print(): la utilizaremos para visualizar los datos deseados.
PARPADEO DE CURSOR: Programar un cursor de tal forma que parpadee en la ubicación
que nosotros queramos de la pantalla de 16×2. Para ello necesitaremos usar las funciones
.noCursor(); y .cursor(); Este sería un skecth de ejemplo:
// include the librarycode:
#include <LiquidCrystal.h>
// initialize the librarywiththe numbersof the interface pins
LiquidCrystal lcd(12,11,5, 4, 3, 2);
voidsetup() {
lcd.begin(16,2); // setup the LCD's numberof columnsandrows
lcd.setCursor(0,0); // Pone el cursoren lascoordenadas(0,0)
lcd.print("Thisisline0"); // Escribe el LCD
lcd.setCursor(0,1); // Ponemosel cursorenlascoordenadas(0, 1)
lcd.print("Thisisline1"); // Escribe el LCD
lcd.setCursor(14,0); //Colocael cursor enla coordenada(14, 0)
}
// include the librarycode:
#include <LiquidCrystal.h>
// initialize the librarywith the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print(“hello, world!”);
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting beginswith 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/ 1000);
}
2. voidloop() {
lcd.noCursor(); // Apagar cursor
delay(500);
lcd.cursor(); // Encendercursor
delay(500);
}
MENSAJE QUE VIENE Y VA: Desplazar un texto de derecha a izquierda de la pantalla
continuamente. Para ello necesitaremos usar las funciones. scrollDisplayRight();
.scrollDisplayLeft(); Se trata de una programación muy interesante porque haremos uso de la estructura
de control FOR .
// include the librarycode:
#include <LiquidCrystal.h>
// initialize the librarywiththe numbersof the interface pins
LiquidCrystal lcd(12,11,5, 4, 3, 2);
voidsetup() {
lcd.begin(16,2); // setup the LCD's numberof columnsandrows:
lcd.print("HIDUDE!");//Printa message tothe LCD. HI DUDE! esuntextode 8 caracteres.
}
voidloop() {
for (intpos = 0; pos< 8; pos++) { // Creamosunavariable llamadapos(posición) que lainicializaremosconel
valor0 para dar uso a la estructurade control for.
lcd.scrollDisplayRight(); // Conla estructurafor repetimosel desplazamientohacialaderecha8 veces.
delay(200); // Lo desplazamos8vecesya que 16 (longituddisplay) - 8 (textoimpreso) =8
movimientosaladerecha.
}
for (intpos= 0; pos< 8; pos++) {
lcd.scrollDisplayLeft();
delay(450);
}
}
DESPLAZANDO UN TEXTO POR TODA LA PANTALLA: Desplazar un texto de izquierda a
derecha de la pantalla y luego que aparezca en la fila inferior por la derecha y desaparezca por
la izquierda, y así continuamente. Para ello necesitaremos usar las funciones .length();
.substring(); .clear() o bien las siguientes: .scrollDisplayRight(); .scrollDisplayLeft();
La función .length(); Sirve para obtener el tamaño del texto, es decir, el número de caracteres
que tiene incluidos espacios, es decir, la función length() nos devuelve un número entero
indicando su tamaño.
La función .substring(numero) devuelve un trozo del texto. El número indica a partir de qué
letra vamos a coger por ejemplo si hacemos “WELCOME-DOMOTIC
3. PARKING!”.substring(3) nos devolverá “COME-DOMOTIC PARKING!”. Recuerda que es un
lenguaje de índice cero, el primer carácter del texto empieza por cero.
La función .clear(): limpia totalmente la pantalla de los caracteres impresos.
Como acabas de aprender en la anterior ampliación de reto, también se podría programar esto
con las funciones .scrollDisplayRight(); .scrollDisplayLeft(); Al final dejo a tu entendimiento
cuál crees que es más fácil de programar, y por tanto más sencillo para ti.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String texto = "WELCOME-DOMOTIC PARKING!";
const int VELOCIDAD = 250;
void setup() {
lcd.begin(16, 2);
}
void loop() {
const int longitud=texto.length(); // Creamos una constante "longitud" que será un número entero y tendrá el valor de la longitud o tamaño to
"texto" (caractéres+espacios).
for(int i=longitud; i>0 ; i--) // Mostramos entrada texto por la izquierda hasta que la primera letra (W) alcanza la coordenada (0, 0)
{
String texto_cortado =texto.substring(i-1);
/* La función .substring(numero) devuelve un trozo deltexto. El número indica a partir de qué letra vamos a coger por ejemplo si hacemos
“WELCOME-DOMOTIC PARKING!”.substring(3)
nos devolverá “COME-DOMOTIC PARKING!”. Recuerda que es un lenguaje de índice cero, el primer carácter deltexto empieza por cero.
*/
lcd.setCursor(0, 0); //Situamos el cursor
lcd.print(texto_cortado); // Escribimos el texto
delay(VELOCIDAD); // Esperamos
}
for(int i=1; i<=16;i++) // Una vez que se coloca elinicio del texto (o letra W) en la coordenada (0, 0) desplazamos el texto hacia la dere
para que recorra toda la longitud del display (16 unidades).
{
lcd.clear();
lcd.setCursor(i, 0);
lcd.print(texto);
delay(VELOCIDAD);
}
for(int i=16;i>=1;i--) // Mostramos el texto por la derecha en la segunda fila y lo desplazamos hacia la izquierda hasta que recorra tod
pantalla (16 unidades)
{
lcd.clear();
lcd.setCursor(i, 1);
lcd.print(texto);
delay(VELOCIDAD);
}
for(int i=1; i<=longitud ; i++) // Sacamos el texto por la izquierda de la pantalla para conseguir el efecto de que desaparece.
{
String texto_cortado =texto.substring(i-1);
lcd.setCursor(0, 1);
lcd.print(texto_cortado);
delay(VELOCIDAD);
lcd.clear();
}
}