Vamos a ver cómo realizar el montaje, la configuración y puesta en marcha de este conversor LCD I2C con la placa Arduino y un LCD de 2×16, también veremos cómo configurar otro tipo de LCD con diferente disposición de filas y caracteres. Este módulo es uno de los proyectos que más le cuesta a los aficionados de Arduino poner en marcha, todo se debe a las diferentes variantes de módulos e incluso de librerías y configuraciones que existen, aprovechando que en ElectroHobby disponemos de todos los materiales vamos a poner en marcha este montaje de forma fácil y explicado paso a paso.

El módulo conversor I2C LCD

Como su nombre indica, sirve para manejar un LCD con solo 2 hilos mediante el protocolo de comunicación I2C.

LCD I2C
LCD I2C

Está basado en el integrado PCF8574P que es un expansor remoto de 8 bit’s de entradas/salidas digitales por comunicación I2C. En el mercado hay muchas variantes de este módulo y todas tienen sus cambios, no solo a nivel hardware si no también a la hora de realizar la configuración de la librería.

LCD I2C

Este modelo en concreto incorpora todos los componentes necesarios para un óptimo funcionamiento: led indicador de alimentación, potenciómetro para el control de contraste, transistor  y jumper para la conmutación del blacklight.

LCD I2C

Zona de puentes para configuración de la dirección de trabajo dentro del bus I2C, zona de pines de alimentación y comunicación con Arduino o microcontrolador, zona de pines para el control, alimentación y comunicación con la pantalla LCD.

La alimentación del módulo es de 3 a 5v y la dirección por defecto dentro del bus I2C es la 0x27, mediante la configuración de los puentes de dirección podemos obtener 8 direcciones diferentes, esto significa que podemos manejar hasta 8 LCD con sus respectivos módulos a través del bus de 2 hilos.

La pantalla LCD

La elegida es de 2×16 que serian dos líneas y 16 caracteres visibles por línea. Simplementecambiando una línea de código de la configuración de la librería podremos usar una de 4×20 u otra disposición de líneas y caracteres.

LCD I2C
LCD I2C

Este modelo está basado en el controlador HD44780 de Hitachi, es requisito imprescindible para usar las librerías.

LCD I2C

Tiene la disposición de conexiones en la parte superior y todas ellas están serigrafiadas con el nombre y uso del pin.

LCD I2C

Dispone de retroiluminación de pantalla en azul con los caracteres mostrados en blanco lo que permite una gran visibilidad y un aspecto moderno y elegante.

La librería de programación

para el control LCD que incorpora el IDE Arduino es la LiquidCrystal

Esta versión de la librería no admite la comunicación mediante el protocolo I2C por lo que tendremos que actualizarla con New-liquidcrystal de Fmalpartida, simplemente volcamos y sobrescribimos los archivos existentes dentro de la carpeta arduino/libraries/LiquidCrystal con los que hay dentro de la nueva librería, es importante que copiemos los archivos directamente en el mismo sitio sin crear otras carpetas o directorios, después de esto habrá que reiniciar el IDE Arduino para que cuente con las nuevas librerías. Más adelante, en el apartado de programación veremos cómo configurarla.

En las versiones actuales del IDE Arduino 1.6.x no es necesario sobrescribir, simplemente desde el menu Programa > Include Library > Add .Zip Library… podemos instalarla sin mayor problema, dentro de los archivos que te puedes descargar a continuación tienes la librería en formato .Zip una vez instalada solo tienes que pulsar sobre ella para que te cargue los includes dentro de tu programa, la encontrara al final de la lista donde están las librerías instaladas por el usuario.

Archivos LCD I2C

Libreria, datasheet y ejemplo comentado…

Descargar Archivos

El montaje…

En primer lugar tenemos que unir el modulo con la pantalla mediante soldadura, para ello y con el fin de que podamos reutilizar o sustituir cualquiera de los dos componentes, utilizaremos una tira de 16 pin hembra soldada en la pantalla, es recomendable no usar demasiado estaño, realizar las soldaduras en pines alternados para no sobrecalentar ninguna zona en concreto y revisar que todas las soldaduras queden brillantes, la brillantez indica la ausencia de soldaduras frías que nos pudieran dar luego algún que otro dolor de cabeza por un mal contacto.

Acto seguido prepararemos el cable de conexión de alimentación y comunicación con el bus I2C, como nos gusta hacer las cosas bien y de forma profesional, vamos ha utilizar unas fundas pin 2,54 de dos y cuatro pin, esto limitará los posibles errores de contacto y conexionado a la par que dará un aspecto vistoso, ordenado y robusto a nuestro montaje.

UnoAlimenMegataremos el módulo con los pines +5v y Gnd provenientes de la tarjeta arduino, utilizaremos rojo y negro, colores estándar para esta función.

Para la comunicación necesitamos otros dos hilos, uno verde para SDA y otro amarillo para SCL, que serán datos y reloj respectivamente del bus I2C. Los pines de conexión al bus I2C de la tarjeta Arduino cambian según el modelo que utilicemos, UNO, Mega, Leonardo. El color de estos dos últimos cables no obedece a ninguna norma concreta.

La programación…

La programación y configuración de la librería para el modulo LCD/I2C es bastante sencilla, el ejemplo que se incluye en los archivos está totalmente comentado, línea a línea, lo que hace que sea más fácil la comprensión del uso de las funciones y de la propia configuración, incluso con otro tipo de LCD con diferentes filas o caracteres.

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

Función de configuración del módulo LCD/I2C (Dirección del bus, pin enable, pin rw, pin rs, pines de datos d4-d5-d6-d7, pin control backlight y polaridad) con esta configuración de la función estamos diciéndole la relación de pines con los que trabaja este módulo en concreto, si utilizáramos otro modelo tendríamos que saber a priori cual es la distribución de esos pines.

lcd.begin(16,2);

Función de configuración e inicialización del display LCD, a esta función le tenemos que pasar los datos de nuestro LCD en forma de (caracteres, líneas) por lo que es realmente fácil usar otros tipos de pantalla, por ejemplo para un LCD de 4 líneas y 20 caracteres por línea tendríamos que pasar a la función los datos (20,4).

Sin duda hay muchas más funciones de las que se utilizan en el programa de ejemplo, tanto funciones visuales como de configuración, con lo explicado hasta el momento es más que suficiente para que podamos poner en marcha nuestro montaje independientemente del nivel de conocimientos que tenga cada uno.
Como el proyecto y el resultado obtenido lo merecen pongo un kit completo con todos los materiales que he utilizado en este montaje, como siempre a un precio excelente, «Electrónica para todos los bolsillos.»

Espero que te haya gustado, si es así compártelo en las redes sociales con los botones que tenéis a continuación, gracias de antemano y un saludo.