Panama Hitek Logo
Panama Hitek Logo

Display LCD 16×2 con comunicación I2C en Arduino

En este post vamos a aprender a simplificar la conexión de un LCD 16×2 mediante la comunicación I2C utilizando el módulo LCM 1602 I2C V1. A menudo, conectar un LCD 16×2 de manera tradicional puede resultar complicado y requerir un gran número de pines digitales y un potenciómetro lineal de 10KΩ. Sin embargo, gracias al módulo LCM 1602 I2C V1, podemos realizar la conexión de manera mucho más sencilla y sin tener que utilizar tanto espacio en nuestra placa Arduino.

Además, este módulo nos permite controlar el contraste del LCD y realizar la comunicación I2C de manera eficiente. En este post, veremos cómo hacer las conexiones necesarias, cómo obtener la dirección del módulo LCM 1602 I2C V1 y cómo utilizar el Serial Monitor para enviar mensajes a la placa Arduino y ver los mensajes que el Arduino nos envía. ¡Empecemos!

Para realizar las conexiones de nuestro montaje, necesitamos un módulo LCM 1602 I2C V1, que es el encargado de realizar la comunicación I2C entre el Arduino y el LCD 1602. Este módulo consta de un expansor de E/S de 8 bits destinado a la comunicación I2C, el cual le podemos encontrar en las versiones PCF8574 y PCF8574A, un potenciómetro para controlar el contraste del LCD, una serie de resistencias para regular corrientes y un pequeño LED integrado en la placa para saber si el módulo está alimentado correctamente (POWER).

Módulo LCM 1602 I2C V1

Este módulo va soldado directamente sobre los terminales del LCD 1602 que se describen a continuación:

  • VSS: Es el terminal de alimentación negativa, es decir, 0 V (masa o GND).
  • VDD: Es la alimentación positiva de la pantalla y el chip (5 V). Es recomendable ponerle en serie una resistencia para evitar daños (con una de 220 Ω es suficiente.
  • RW: Es el terminal de activación de lectura/escritura. Se suele conectar a masa para que se escriba en todo momento.
  • VO: Es el contraste de la pantalla, debe conectarse con un potenciómetro de unos 10 kΩ.
  • RS: Es el terminal selector de registro, mediante el cual, el microcontrolador le comunica al LCD si quiere mostrar caracteres o si lo que quiere es enviar comandos de control, como cambiar la posición del cursor o borrar la pantalla, por ejemplo.
  • E: Es el terminal de habilitación de la pantalla, tiene que estar activado para poder recibir información.
  • D0~D7: El LCD tiene un bus de datos de 8 bits. En este Proyecto solamente utilizaremos 4 bits, de D4 a D7, que nos servirán para establecer las líneas de comunicación por donde se transfieren los datos.
  • A y K: Son los terminales del LED que ilumina el fondo de la pantalla (BackLight). A a 5 V y K a GND.

Otra cosa muy importante a recordar es que dentro de la programación, exactamente en la línea “LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);”, donde pone 0x27, es justo la dirección que va a tener nuestro LCD 1602.

Para obtener la dirección del módulo LCM 1602 I2C V1, se deben medir los valores de los pines de dirección A0, A1 y A2 con un voltímetro. Si, por ejemplo, A0 tiene un valor de 0 o un nivel BAJO (LOW), significa que el pin está conectado a GND. Por otro lado, si A0 tiene un valor de 1 o un nivel ALTO (HIGH), significa que el pin está conectado a +5V. En muchos módulos, la dirección se puede modificar simplemente soldando o no soldando los pines de dirección a otros pines adyacentes que están conectados a GND. Esto nos permite conectar varios LCD al mismo tiempo y seleccionarlos en función de su dirección. Las posibles direcciones y configuraciones de los pines de dirección A2, A1 y A0 se pueden ver en la siguiente tabla.

Tabla de configuración de los pines A2, A1 y A0 (direcciones I2C)

Para encontrar la dirección I2C de los LCD, también tenemos un método alternativo realizado mediante software, es decir, disponemos del programa denominado “Escaner_direcciones_I2C” que nos facilitará enormemente la búsqueda de las direcciones I2C de cualquier dispositivo que conectemos mediante este protocolo a nuestro Arduino.

Descarga del Escáner de direcciones I2C

Simplemente tendremos descargar el programa desde el link anterior, conectar el dispositivo deseado mediante I2C, cargar el programa en nuestro Arduino y por último abrir el monitor serie del IDE de Arduino para obtener su dirección I2C.

Monitor serie del IDE de Arduino

El módulo LCM 1602 I2C V1 se puede adquirir ya soldado en la parte posterior del LCD 16×2 o por separado. Si decidimos optar por la segunda opción, necesitaremos contar con un soldador, estaño y algo de práctica soldando.

Una vez que el módulo esté en su lugar, no olvidemos ajustar el contraste del LCD 1602 utilizando el potenciómetro incorporado. Luego, simplemente conectamos los cuatro terminales del módulo a sus correspondientes en la placa Arduino (VCC, GND, SDL y SDA), cargamos el programa y utilizamos el Monitor serie para enviar caracteres que se mostrarán en el LCD.

Display 16×2 LCD 1602

Antes de enviar caracteres, el LED Backlight, que ilumina el fondo del LCD, parpadea varias veces mediante programación y luego se queda encendido. También enviamos algunas líneas de texto al LCD para hacer que la ejecución del programa sea más interactiva (consulte los comentarios en el código para comprender mejor el funcionamiento completo del programa).

Para ejecutar este proyecto correctamente, necesitamos utilizar una parte del software Arduino llamada Serial Monitor. Esta ventana nos permite escribir mensajes que se envían a la placa Arduino, así como ver los mensajes que el Arduino nos envía (Herramientas> Monitor Serie o también Ctrl+Mayús+M).

Lista de Materiales
  • Arduino UNO Rev.3
  • Cable USB tipo A-B
  • Módulo LCM 1602 I2C V1
  • Display 16×2 LCD 1602
  • Protoboard
  • Cables de conexión
Código del programa

Video

En conclusión, en este post hemos aprendido cómo simplificar la conexión de un LCD 16×2 mediante la comunicación I2C utilizando el módulo LCM 1602 I2C V1. Hemos visto que este módulo nos permite controlar el contraste del LCD y realizar la comunicación I2C entre el Arduino y el LCD 1602 sin necesidad de utilizar un gran número de pines digitales y sin tener que recurrir al uso de un potenciómetro lineal de 10KΩ.

Además, hemos aprendido cómo obtener la dirección del módulo LCM 1602 I2C V1 y cómo utilizar el Serial Monitor para enviar mensajes a la placa Arduino y ver los mensajes que el Arduino nos envía.

Espero que este post haya sido de utilidad para ustedes y si tienen alguna duda o comentario, no duden en dejármelo en los comentarios. ¡Gracias por leer!

Posts relacionados

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados