You are on page 1of 4

Display LCD 16x2 con comunicación I2C

Aquí les dejo como simplificar la conexión de un LCD 16x2 (consta de 2 líneas y 16
caracteres por línea), mediante comunicación I2C (SCL y SDA únicamente), puesto que por
el método tradicional, necesitaríamos un potenciómetro lineal de 10KΩ además de ocupar
un gran número de pines digitales, con lo que el montaje del circuito se complicaría en
exceso, aunque no va a ser nuestro caso.
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  5 V
y K  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. Dicha dirección se obtiene midiendo
el valor de los pines de dirección A0, A1 y A2, que están justo detrás del módulo LCM 1602
I2C V1, con un voltímetro. Si por ejemplo A0 = 0 o nivel BAJO (LOW) significa que ese pin
está conectado a GND y de lo contrario si A0 = 1 o nivel ALTO (HIGH) significa que ese pin
está conectado a +5V, en la mayoría de los módulos la dirección puede ser modificada
simplemente soldando o no los pines de dirección a unos pines adyacentes que van
conectados a GND, permitiéndonos conectar varios LCD al mismo tiempo y seleccionarlos
según la dirección que tengan. Las posibles direcciones y configuraciones de los pines de
dirección A2, A1 y A0 se pueden obtener de 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

También comentaros que este módulo lo podemos adquirir ya soldado en la parte


posterior del LCD 16x2 o por separado, aunque si lo compramos por separado nos hará
falta un soldador, estaño y una cierta práctica soldando. Por último no debemos de olvidar
ajustar el contraste del LCD 1602 a través del potenciómetro que el módulo LCM 1602 I2C
V1 trae incorporado. Ahora ya solo tenemos que conectar los 4 terminales del módulo a
sus correspondientes de la placa Arduino (VCC, GND, SDL y SDA), cargar el programa y por
último enviar caracteres a través del Monitor serie para que se vayan mostrando en el
LCD.

Display 16x2 LCD 1602

Antes de proceder a enviar caracteres, el LED Backlight, que sirve para iluminar el fondo
del LCD , realiza mediante programación una serie de parpadeos, quedándose encendido
finalmente. También le enviamos unas pequeñas líneas de texto al LCD para que la
ejecución del programa sea mucho más interactiva (consultar comentarios en el código
para comprender mejor el funcionamiento completo del programa).
Para ejecutar correctamente este Proyecto necesitamos emplear una parte del software
Arduino llamado Serial Monitor. Esta ventana le 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 16x2 LCD 1602.

 Protoboard.

 Cables de conexión.

Código del programa:

Descarga del Programa

Video:

Publicado por Mariano del Campo en 18:42:00


Enviar por correo electrónicoEscribe un blogCompartir con TwitterCompartir con
FacebookCompartir en Pinterest
Etiquetas: 1602, Arduino, Arduino UNO, Comunicación I2C, LCD, monitor serie

You might also like