Impresión de información con un display LCD

Prácticas con DASA

Título de la práctica:Impresión de información con un display LCD
Objetivo:El alumno imprimirá información en un display LCD con una tarjeta Arduino.
Tiempo estimado:100 minutos
Nivel de dificultad:Intermedio

Introducción

Una pantalla de cristal líquido, mejor conocida como LCD por sus siglas en inglés (liquid-crystal display), es una pantalla en donde se puede mostrar información de tipo alfanumérico. Está organizada en forma de matriz o arreglo bidimensional de 2 renglones y 16 columnas como se muestra en la Figura 1.

Los renglones (filas)  y columnas se identifican con un número consecutivo iniciando en 0.

display lcd}
Figura 1 Display LCD 16×2

En esta práctica aprenderás a manejar un display LCD con una tarjeta Arduino para imprimir información.

Materiales

Programas

Arduino IDE. Disponible en: https://www.arduino.cc/en/software

Desarrollo

Te invitamos a ver el siguiente video donde encontrarás información importante sobre las características, conexión y funcionamiento del display LCD.

Video Display LCD

Como habrás observado en el video anterior, la conexión del display LCD a la tarjeta Arduino es un poco laboriosa, sin embargo, el Dispositivo Automatizado de Sensores Arduino (DASA) te ahorrará hacer estas conexiones. El display LCD estará listo para usarse una vez que conectes el DASA a la tarjeta Arduino UNO.

Conexión del DASA a la tarjeta Arduino UNO

Conecta el DASA a la tarjeta Arduino UNO como se muestra en la Figura 2. Asegúrate que todos los pines se introduzcan completamente  en los conectores de  la tarjeta Arduino correspondientes.

Figura 2 Conexión del DASA a la tarjeta Arduino UNO

Nota: si no tienes un DASA, puedes construir el circuito electrónico mostrado en la Figura 3, o bien, utilizar la herramienta de simulación de circuitos electrónicos Arduino de Tinkercad.

Figura 3 Diagrama de conexiones del display LCD

Manejo del display LCD

Para controlar el display LCD mediante la tarjeta Arduino UNO realizaremos los siguientes pasos:

Inclusión de la biblioteca LiquidCrystal

El primer paso que debemos hacer es incluir en nuestro programa la biblioteca LiquidCrystal de Arduino. Para ello, utilizamos la instrucción:

#include <LiquidCrystal.h>

Recuerda que esta instrucción NO lleva punto y coma al final y que debe ser codificada al inicio de tu programa. Al incluir esta sentencia ya podemos hacer uso de cualquier función definida dentro de la biblioteca LiquidCrystal.

 
Declaración de una variable tipo LiquidCrystal

Como segundo paso, debemos declarar una variable de tipo LiquidCrystal con la que el programa identifique al display LCD. Esta acción la realizaremos con la función LiquidCrystal(). En nuestro caso, solamente vamos a utilizar 4 líneas de datos, por lo que la sintaxis para invocar a la función es:

LiquidCrystal nombreVariable(rs, enable, d4, d5, d6, d7)

Parámetros

nombreVariable – Identificador de la variable que se creará de tipo LiquidCrystal 

rs – Número del pin de la tarjeta Arduino al que está conectado el pin rs del display LCD

enable – Número del pin de la tarjeta Arduino al que está conectado el pin enable del display LCD

d4 – Número del pin de la tarjeta Arduino al que está conectado el pin de datos d4 del display LCD

d5 – Número del pin de la tarjeta Arduino al que está conectado el pin de datos d5 del display LCD

d6 – Número del pin de la tarjeta Arduino al que está conectado el pin de datos d6 del display LCD

d7 – Número del pin de la tarjeta Arduino al que está conectado el pin de datos d7 del display LCD

Si observamos con detenimiento la Figura 3, podemos identificar a qué pines digitales de la tarjeta Arduino UNO están conectados los pines del display LCD (Tabla 1).

Pin del Display LCDPin de la tarjeta Arduino UNO
rs13
enable12
d411
d510
d69
d78
Tabla 1 Pines de conexión del LCD a la tarjeta Arduino UNO

Vamos a nombrar a nuestra variable lcd. De esta manera, la declaración de la variable lcd de tipo LiquidCrystal es:

//               (rs,  e, d4, d5, d6, d7
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

Es conveniente declarar la variable lcd de ámbito global para que pueda ser utilizada por cualquier función del programa, así que la instrucción anterior debe colocarse al inicio del programa, antes de la función setup.

 
Inicialización del display LCD

Ahora debemos inicializar el display LCD con la función begin. Su sintaxis es:

nombreVariable.begin(columnas, renglones);

Parámetros

nombreVariable – Identificador de la variable tipo LiquidCrystal

columnas – Número de columnas que tiene el display LCD

renglones – Número de renglones que tiene el display LCD

Como el display LCD integrado en la tarjeta DASA es de 16 columnas x 2 renglones, entonces la instrucción para inicializarlo es:

lcd.begin(16,2);
Posicionamiento del cursor

Antes de imprimir cualquier texto es conveniente asegurarse que el cursor esté colocado en la posición adecuada del display LCD. Para ello, usaremos la función setCursor de la biblioteca LiquidCrystal. Su sintaxis es:

nombreVariable.setCursor(columna, renglón)

Parámetros

nombreVariable – Identificador de la variable tipo LiquidCrystal

columna – Número de la columna en la cual se posicionará el cursor (0-15)

renglón –  Número del renglón en el cual se posicionará el cursor (0-1)

Por ejemplo, si queremos colocar el cursor en el renglón 1 y la columna 5, la función se codificaría así:

lcd.setCursor(5,1);
Imprimir información

Ahora sí, ya podemos imprimir cualquier dato en el display LCD mediante la función print, cuya sintaxis es:

nombreVariable.print(dato);

Parámetros

nombreVariable – Identificador de la variable tipo LiquidCrystal

dato –  El dato que se desea imprimir (cadena de caracteres, variable, símbolo especial, etc.)

Por ejemplo, si queremos imprimir el texto «Hola mundo», la función se codificaría de la siguiente manera:

lcd.print("Hola mundo");

Otro caso es cuando deseamos imprimir el valor de una variable. Para ello, tenemos que colocar el nombre de la variable como parámetro de la función sin comillas. También es importante que recuerdes que la variable debe estar previamente definida, de otra manera, el compilador detectaría un error.

Ejemplo:

lcd.print(temp)

Supongamos que la variable temp tiene almacenado el valor 24.78 y deseamos mostrar en el display LCD el mensaje Temp = valor de la variable temp. Las instrucciones de Arduino serían:

lcd.setCursor(0,0);    // Posiciona el cursor en la columna 0, renglón 0 
lcd.print("Temp = ");  // Imprime el texto Temp = 
lcd.print(temp)          // Imprime el valor almacenado en la variable temp

Y el resultado sería el mostrado en la Figura 4.

Figura 4. Escritura de información en el display LCD

Programación del circuito electrónico

Vamos a poner en práctica todas las funciones que aprendiste resolviendo los siguientes ejercicios:

Ejercicio 1 Impresión de texto

Completa el siguiente programa con las instrucciones que realicen las acciones especificadas en cada uno de los comentarios para que el display LCD muestre la información de la Figura 5.

Figura 5 Resultado de la ejecución del programa Ejercicio 1

Captura, compila y ejecuta tu programa por medio de siguientes acciones:

  1. Abre el IDE de Arduino.
  2. Crea un nuevo sketch.
  3. Captura las instrucciones del programa.
  4. Guarda tu programa.
  5. Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
  6. Conecta la tarjeta Arduino a tu computadora.
  7. Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
  8. Sube el programa a la memoria de la tarjeta Arduino UNO.
  9. Ejecuta tu programa.

Ejercicio 2 Impresión de variables

Completa el siguiente programa con las instrucciones que realicen las acciones especificadas en cada uno de los comentarios para que el display LCD muestre la información de la Figura 6.

Figura 6 Resultado de la ejecución del programa del Ejercicio 2

Captura, compila y ejecuta tu programa por medio de siguientes acciones:

  1. Abre el IDE de Arduino.
  2. Crea un nuevo sketch.
  3. Captura las instrucciones del programa.
  4. Guarda tu programa.
  5. Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
  6. Conecta la tarjeta Arduino a tu computadora.
  7. Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
  8. Sube el programa a la memoria de la tarjeta Arduino UNO.
  9. Ejecuta tu programa.

Prueba imprimir otros textos y variables. Si tienes problema porque tu texto se encima o no sale como tú lo deseas, consulta el Manual de referencia de la biblioteca LiquidCrystal de Arduino, donde podrás encontrar la función para borrar la información de la pantalla, entre otras.

Resultados

  • El resultado de la ejecución del programa del Ejercicio 1 deberá ser el que se muestra en la Figura 5.
  • El resultado de la ejecución de tu programa del Ejercicio 2 deberá ser el que se muestra en la Figura 6

Conclusiones

Responde las siguientes preguntas:

  1. ¿Qué aprendiste con esta práctica?
  2.  Elabora un algoritmo que describa el proceso para imprimir información en un display LCD con Arduino.
  3. ¿Cuál es la función de la biblioteca LiquidCrystal que borra toda la información de la pantalla LCD?
  4. ¿Para qué proyectos consideras que sería útil emplear un display LCD?

Reto Arduino

Para que practiques tus habilidades de programación en Arduino, te invitamos a que realices el siguiente reto:

  1. Construye y programa un circuito electrónico que utilice cualquier sensor e imprima en el display LCD el valor registrado por dicho sensor.

Referencias

Arduino. (2021). Language Reference. https://www.arduino.cc/reference/en/

Bañuelos, M., Pacheco, M. y Villegas, R. (2022). Dispositivo Automatizado de Sensores Arduino (DASA). Manual de usuario.