Hasta el momento hemos utilizado el monitor serial de IDE de Arduino para ver lo resultados de nuestros sensores, vamos a dar un paso más avanzado y vamos a utilizar un LCD 1602, que es una pantalla de cristal líquido de 16 caracteres por 2 filas, con la que vamos a seguir viendo esos resultados a través de ella.
¿Qué es un LCD 1602?
El LCD 1602 es una pantalla de cristal líquido alfanumérica de 16 caracteres por 2 filas, la cual nos permite ver caracteres alfanuméricos. Este tipo de pantallas es muy útil cuando debemos ver la información que interpreta nuestro Arduino de los sensores, como por ejemplo cuando medimos la temperatura con el sensor LM35 y así no dependeríamos de una conexión al computador para ver los datos.
En el mercado se encuentran muchos modelos de este tipo de pantallas, donde las dos mas comunes son la LCD1602 y el LCD2004, donde la primera es de 2 filas por 16 caracteres y la segunda pantalla tiene 4 filas por 20 caracteres, eso en cuanto a los tamaños, pero también encontramos que pueden tener diferentes colores de pantalla.
Componentes
Las pantallas LCD1602 y LCD2004, tienen la misma distribución de pines, entre los que encontramos 8 pines para datos D0-D7, para esto utilizaríamos 8 pines del Arduino para comunicarnos con la pantalla, esto seria una comunicación de 8 bits, pero también podemos usar 4 pines para este mismo fin, que sería el método de 4 bits y este es el método que vamos a utilizar.
La siguiente tabla es la distribución de las conexiones entre la pantalla y nuestro Arduino, utilizando solo los pines D4 al D7 de la pantalla:
Pin LCD1602 | Pin Arduino |
---|---|
1- VSS | GND |
2- VDD | +5V |
3- V0 | Pin 2 Potenciómetro |
4- RS | 12 |
5- RW | GND |
6- E | 11 |
11- D4 | 5 |
12- D5 | 4 |
13- D6 | 3 |
14- D7 | 2 |
15- A | Resistencia a +5v |
16- K | GND |
Código
/* * Método de conexión de 4-bit con LiquidCrystal.h */ #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); } void loop() { lcd.setCursor(3,0); lcd.print("Visit Now!"); lcd.setCursor(1,1); lcd.print("www.acortes.co"); delay(400); lcd.clear(); delay(200); }
Explicación del código
Comenzaremos a revisar el código, primero vamos hacer la declaración de las variables.
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Lo primero que vemos en esta parte del código es que incluimos la librería LiquidCrystal.h, la cual nos ayudará en el proceso de interactuar con nuestra pantalla, esta librería viene con el IDE de Arduino, así que no hay que instalar nada. Luego definimos un objeto de tipo LiquidCrystal al que llamamos lcd, como vamos a utilizar el método de 4 bits entonces este objeto recibe los valores de estos pines de la pantalla rs, enable, d4, d5, d6, d7, por lo que le asignamos 12, 11, 5, 4, 3, 2 que son los pines del Arduino donde conectamos esos pines de la pantalla.
Podemos ver más información de la librería aquí.
Función setup()
lcd.begin(16, 2);
Como hemos visto anteriormente en otros proyectos en el setup ponemos todo lo que debe ser inicializado o ejecutado una sola vez, en nuestro caso encontramos sólo una línea no más. En esta línea vemos que inicializamos el objeto lcd y definimos que tiene 16 líneas y dos filas. Dado el caso que tengan unta pantalla 2004 solo deben cambiar el 16 por un 20 y el 2 por un 4.
Función loop()
lcd.setCursor(3,0); lcd.print("Visit Now!"); lcd.setCursor(1,1); lcd.print("www.acortes.co"); delay(400); lcd.clear(); delay(200);
Comenzaremos revisando el contenido de nuestra función loop, para esto vamos a irlo desglosando un poco, para que sea mas fácil de entender.
lcd.setCursor(3,0); lcd.print("Visit Now!");
En esta primera línea vemos una función sertCursor que recibe dos parámetros setCursor(columna, fila), donde la columna y la fila se comienzan a contar desde 0, entonces vemos en la primera línea de código en el loop se le entregan los valores 3 y 0, por lo que el cursor se ubicará en la 4 columna y la fila 1 de la pantalla para comenzara a escribir desde ahí, en la siguiente línea se aprecia que le ordenamos a imprimir el texto «Visit Now!», por lo que aparecerá en la pantalla en la posición antes mencionada (columna 4 , fila 1).
lcd.setCursor(1,1); lcd.print("www.acortes.co");
Ahora localizamos el cursor en la posición 1,1 es decir en la columna 2 y en la fila 2 y luego imprimimos un texto «www.acortes.co» en la pantalla en la posición mencionada anteriormente.
delay(400); lcd.clear(); delay(200);
Anteriormente vimos que se mostró en pantalla dos líneas de textos, ahora en la siguiere línea encontramos un delay de 400 milisegundos, el cual hace una pausa por ese intervalo de tiempo, luego hay una limpieza de pantalla y finalmente encontramos una delay que hace una pausa de 200 milisegundos antes de volver comenzar de nuevo con el loop.
NOTA: Con este método podemos conectar tanto la pantalla LCD1602, como la LCD2004. En nuestro siguiente tutorial vamos a conectar estas pantallas pero utilizando el protocolo I2C.
Resumen
En este proyecto utilizaremos una pantalla de cristal líquido de 16 caracteres por 2 filas para visualizar un texto, el cual se visualizará por 400 milisegundos y desaparecerá por 200 milisegundos, es decir se va a ver de manera intermitente.