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.

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

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.
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 LCD | Pin de la tarjeta Arduino UNO |
---|---|
rs | 13 |
enable | 12 |
d4 | 11 |
d5 | 10 |
d6 | 9 |
d7 | 8 |
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.

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.

Captura, compila y ejecuta tu programa por medio de siguientes acciones:
- Abre el IDE de Arduino.
- Crea un nuevo sketch.
- Captura las instrucciones del programa.
- Guarda tu programa.
- Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
- Conecta la tarjeta Arduino a tu computadora.
- Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
- Sube el programa a la memoria de la tarjeta Arduino UNO.
- 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.

Captura, compila y ejecuta tu programa por medio de siguientes acciones:
- Abre el IDE de Arduino.
- Crea un nuevo sketch.
- Captura las instrucciones del programa.
- Guarda tu programa.
- Compila tu programa. En caso necesario, depúralo hasta que no tenga ningún error.
- Conecta la tarjeta Arduino a tu computadora.
- Selecciona el puerto serial (COM) de la computadora asociado a la tarjeta.
- Sube el programa a la memoria de la tarjeta Arduino UNO.
- 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:
- ¿Qué aprendiste con esta práctica?
- Elabora un algoritmo que describa el proceso para imprimir información en un display LCD con Arduino.
- ¿Cuál es la función de la biblioteca LiquidCrystal que borra toda la información de la pantalla LCD?
- ¿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:
- 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.