Pantalla LCD

Objetivos

En este tema, aprenderemos cómo conectar y usar una pantalla LCD alfanumérica. La pantalla tiene una retro iluminación LED.

Se pueden ver los rectángulos para cada carácter en la pantalla y los píxeles que componen cada carácter. La pantalla es blanca y azul y además está diseñada para mostrar texto.

Materiales

  (1) x Placa Arduino
  (1) x Módulo LCD 1602
  (1) x Potenciómetro (10k)
  (1) x Protoboard
  (16) x M-M cables (cables de macho a macho)

Introducción a los Componentes

Módulo LCD

El módulo LCD1602, o pantalla de cristal líquido de tipo 1602, es un tipo de módulo de matriz de puntos para mostrar letras, números y caracteres, etc. Se compone de posiciones de matriz de puntos de 5x7 o 5x11; cada posición puede mostrar un carácter.



Hay un punto entre dos caracteres y un espacio entre líneas, separando así los caracteres y las líneas. El nombre de modelo 1602, significa que muestra 2 líneas de 16 caracteres.

En general, LCD1602 tiene puertos paralelos, es decir, controlaría varios pines al mismo tiempo. El LCD1602 se puede clasificar en conexiones de ocho puertos y cuatro puertos.

Los pines que tenemos que conectar a nuestra placa de arduino serían:

Esquemas de Conexión

Esquema Eléctrico

Diagrama Ilustrativo

No lo olvides, el cable largo amarillo conecta el potenciómetro a la clavija 3 de la pantalla. El potenciómetro se utiliza para controlar el contraste de la pantalla.

Imagen de Ejemplo

Código

Antes de cargar el script, asegúrate de que está instalada la biblioteca LiquidCrystal. El archivo puedes descargarlo desde aquí

Una vez efectuado todo el cableado, descargaremos el script del siguiente enlace y lo cargaremos como hemos aprendido.

Entendiendo el Código

Al subir el código a la placa Arduino, veremos que la pantalla muestra el mensaje Hola, mundo, seguido de un número que cuenta de cero.

Evaluemos el script:

#include < LiquidCrystal.h >

Esto le dice a Arduino que queremos utilizar la biblioteca de LiquidCrystal. A continuación tenemos la línea que teníamos que modificar. Esto define qué pines de Arduino son para conectarse a que pines de la pantalla.

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Después de subir este código, asegúrese de que se enciende la retroiluminación y ajustar el potenciómetro girándolo hasta que aparezca el mensaje de texto.

En la función de setup, tenemos dos comandos:

lcd.Begin (16, 2);
lcd.Print ("Hola, mundo!");

La primera línea se indican cuántas columnas y filas tiene la pantalla. La segunda línea muestra el mensaje que vemos en la primera línea de la pantalla.

En la función de loop, hay dos comandos:

lcd.setCursor(0, 1);
lcd.Print(Millis()/1000);

La primera línea establece la posición del cursor (donde aparecerá el siguiente texto) columna 0 y fila 1. Los números de columna y fila comienzan en 0 en lugar de 1.

La segunda línea muestra el número de milisegundos desde que se restableció el Arduino.

Retos

Reto 1

Hasta ahora hemos visto cómo mostrar un texto en la pantalla LCD. Ahora vamos a ver otras funciones que tiene la librería LiquidCrystal.

En este reto, colocaremos después de un texto, un cursor que se quede parpadeando.

Para ello, utilizaremos estas dos nuevas funciones de la librería:

lcd.Cursor();
lcd.noCursor();


 - La función Cursor() muestra el cursor en la pantalla y en la posición que hayamos indicado.

 - La función noCursor() elimina el cursor de la pantalla.

Ejemplo de Solución

Reto 2

El siguiente reto consiste en hacer que una palabra haga scroll a la derecha y a la izquierda sin salirse de la pantalla

Para ello, utilizaremos estas dos nuevas funciones de la librería:

lcd.scrollDisplayRight();
lcd.scrollDisplayLeft();


 - La función scrollDisplayRight() hace que el texto se desplace a la derecha.

 - La función scrollDisplayLeft() hace que el texto se desplace a la izquierda.

Ejemplo de Solución

Reto 3

Ahora vamos a mover una palabra por toda la pantalla. Lo que hará nuestro texto es desplazarse 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 nuevas funciones.

De texto:
 texto.length();
 texto.substring(numero);

De la pantalla LCD:
 lcd.clear()


 - 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 “HOLA MUNDO”.substring(2) nos devolverá “LA MUNDO”. 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.

Ejemplo de Solución

Reto 4

Ya sabemos como mover un texto por la pantalla. Vamos ahora a hacer que un cácter se mueva por la pantalla pero por donde nosotros queramos.

Escribiremos un carácter en la pantalla y utilizaremos un potenciómetro para moverlo por la pantalla. Si ponemos el potenciómetro a la izquierda del todo, el carácter estará a la izquierda. Según vayamos moviendo el potenciómetro a la derecha, el carácter se irá moviendo a la pantalla, hasta hacer coincidir el final del potenciómetro con el final de la pantalla.

Ejemplo de Solución

Reto 5 (Opcional)

Con todo lo que ya hemos aprendido, realizaremos un juego.

Poniendo la pantalla en vertical (tendríamos dos columnas de ancho por 16 filas de alto) crearemos un juego en el que caerá un caracter de arriba a abajo en una columna aleatoria y con un cursor en la parte de abajo que podamos mover mediante un potenciómetro a derecha e izquierda, trataremos de coger ese carácter con nuestro cursor, acumulando puntos cada vez que se recoge.



Volver al índice

Fun Tech Academy - Calle Alcobendas, 23 Leganés 28914 Madrid - www.funtech.academy