Código de búsqueda

Lección 20/31: Usando LCD1602 con Arduino para mostrar texto | Robojax

Lección 20/31: Usando LCD1602 con Arduino para mostrar texto | Robojax

Introducción

El LCD1602 es uno de los displays alfanuméricos más populares para proyectos con Arduino, y cuando se combina con un adaptador I2C, se vuelve increíblemente fácil de usar. En este tutorial, aprenderás a mostrar texto, números y caracteres personalizados, así como a desplazar texto por la pantalla. También te mostraremos cómo combinar el LCD con otros sensores para crear herramientas de monitoreo prácticas. Esta guía es parte de un curso más amplio de Arduino y está diseñada para ayudarte a construir dispositivos útiles para tu hogar, escuela o taller.

captura-2

Aquí tienes algunas ideas prácticas de lo que puedes construir con este conocimiento:

  • Un monitor de temperatura y humedad para un invernadero o un terrario de reptiles.
  • Un voltímetro simple para verificar los niveles de batería en tus proyectos.
  • Un sensor de distancia para un asistente de estacionamiento o un contenedor de basura inteligente que muestre qué tan lleno está.

Descripción General del Hardware

El LCD1602 es un display de 16 caracteres por 2 líneas. El módulo en la parte trasera es un adaptador I2C (o I²C), que reduce el número de cables necesarios de una conexión paralela estándar a solo cuatro: Tierra, VCC, SDA y SCL. Esto hace que el cableado sea mucho más simple y libera muchos pines digitales en tu Arduino.

El display cuenta con una luz de fondo, que se puede encender o apagar mediante software. También tiene un pequeño potenciómetro en el módulo I2C para ajustar el contraste. Si enciendes el display y no ves nada, simplemente gira este tornillo hasta que el texto sea visible (en el video en 02:47).

Hay diferentes versiones de este display, como el LCD2004 que tiene 20 caracteres y 4 líneas. La dirección I2C también se puede cambiar soldando los puentes A0, A1 y A2 en el módulo (en el video en 03:51). La dirección predeterminada suele ser 0x27, pero puede variar, por lo que siempre es buena idea ejecutar un escáner I2C para encontrar la correcta para tu módulo específico.

Componentes de Hardware

Para seguir la demostración principal de este video, necesitarás los siguientes componentes:

  • Arduino Uno (o cualquier placa compatible)
  • LCD1602 con módulo I2C
  • Protoboard y cables de conexión

Para las secciones posteriores, también necesitarás un sensor DHT11, un potenciómetro o un sensor ultrasónico, dependiendo del proyecto que quieras construir.

Guía de Cableado

lcd1602_I2C_wiring_sunfounder

Conectar el LCD es sencillo. El diagrama de cableado muestra las conexiones claramente.

Conecta los pines del módulo I2C a tu Arduino de la siguiente manera:

  • GND al GND del Arduino
  • VCC al 5V del Arduino
  • SDA al A4 del Arduino
  • SCL al A5 del Arduino

Si tu placa Arduino tiene pines SDA y SCL dedicados, también puedes conectarlos a esos (en el video en 05:47).

Instalación de la Librería

Este módulo requiere la librería "Arduino Liquid Crystal I2C". Puedes descargarla desde el enlace proporcionado en la descripción del video o desde el sitio web de Robojax. Una vez descargada, instálala en tu IDE de Arduino yendo a Sketch > Incluir Librería > Añadir Librería .ZIP y seleccionando el archivo descargado (en el video en 06:41).

Explicación del Código

Dado que no se proporcionaron fragmentos de código, explicaremos la estructura general del código utilizado en el video.

El código comienza incluyendo las librerías necesarias: Wire.h para la comunicación I2C y la librería LiquidCrystal_I2C.h para el display. La parte clave es crear un objeto para el LCD. Deberás configurar la dirección I2C correcta y las dimensiones de tu display:

// Configura la dirección LCD a 0x27 para un display de 16 caracteres y 2 líneas
LiquidCrystal_I2C lcd(0x27, 16, 2);

Si tu display no muestra nada, es posible que necesites cambiar 0x27 a 0x3F u otra dirección encontrada por tu escáner I2C. Los números 16 y 2 representan el número de columnas y filas de tu display.

En la función setup(), inicializas el LCD y enciendes la luz de fondo:

void setup() {
  lcd.init();
  lcd.backlight();
}

Para imprimir texto, usas la función lcd.setCursor(columna, fila) para posicionar el cursor, seguida de lcd.print() para mostrar tus datos. Por ejemplo, para imprimir en la segunda línea, usarías lcd.setCursor(0, 1). El video también explica cómo imprimir caracteres especiales como el símbolo de grado usando lcd.write(223) (en el video en 31:42).

Demostración

El video demuestra varias características clave del LCD. Primero, muestra la impresión básica de texto "Hola Mundo" y cómo usar la función lcd.scrollDisplayLeft() para mover texto por la pantalla. Más tarde, combina el LCD con un sensor DHT11 para mostrar temperatura y humedad, con un potenciómetro para mostrar voltaje, y con un sensor ultrasónico para mostrar distancia.

Para la visualización de temperatura, el código lee el sensor e imprime el valor. Para mostrar un número entero sin decimales, puedes convertir el valor flotante a un entero, como se muestra en el video (en el video en 32:21).

Para el voltímetro, el código lee el valor analógico del potenciómetro, lo escala a un rango de voltaje de 0-5V y lo muestra en la pantalla (en el video en 34:31).

La demostración final combina la LCD con un sensor ultrasónico para mostrar la distancia medida en centímetros (en el video en 37:55).

Proyectos relacionados de este video

Este video también contiene otros tutoriales de proyectos. Puedes encontrarlos aquí:

Capítulos

  • [00:00] Introducción al LCD1602 y resumen del curso
  • [01:30] Descripción general del hardware del LCD1602 y el módulo I2C
  • [02:47] Ajuste del contraste de la pantalla y la luz de fondo
  • [03:14] Conexiones de pines y selección de dirección I2C
  • [05:28] Diagrama de cableado para la LCD
  • [06:16] Instalación de la librería requerida
  • [07:24] Código básico para imprimir texto
  • [11:10] Ejemplo de cursor parpadeante
  • [13:46] Caracteres personalizados e impresión de símbolos especiales
  • [18:51] Ejemplo de visualización en serie
  • [23:16] Texto desplazándose en la LCD
  • [36:51] Combinando la LCD con un sensor ultrasónico

Imágenes

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
Idioma: C++
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg

*/
/*
This is code for LCD1602 Display with I2C module
 * watch the video for this code https://youtu.be/q9YC_GVHy5A
 
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purpose only.
 * This library is based on work done by DFROBOT (www.dfrobot.com).
 */
/*
 *  This code has been modefied from the Arduino library
 *  Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
 *  in Ajax, Ontario, Canada
 *  for Robojax.com
 *  
 *  This is code for LCD1602 Display with I2C module
 *  which can display text on the screen.
 */
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);



void setup()
{
  // Robojax code for LCD with I2C
  // initialize the LCD, 
  lcd.begin();
 
  // Turn on the blacklight and print a message.
  //lcd.backlight();
  // Robojax code for LCD with I2C


}

void loop()
{

  lcd.clear();
  lcd.setCursor (0,0);  
  lcd.print("SunFounder ");
  lcd.setCursor (0,1);
  lcd.write(244);


  delay(500);
 //end of loopcode Robojax code for LCD with I2C
}

Archivos📁

Bibliotecas de Arduino (zip)