LCD Arduino | i2c lcd arduino

Vamos a ver como conectar un LCD Arduino (una Pantalla lcd por I2C 16×2 con Arduino).

 

Cuando diseñamos un proyecto con arduino es muy común incluir un display para poder monitorear cierta información.  Existe una amplia gama de pantallas LCD sobre las que elegir, son baratos, consumen poco y tienen diversas medidas.

 

Para poder utilizar nuestros LCD display necesitaremos usar librerías; en el artículo de iniciación Arduino no comentamos nada respecto a ellas, así que haremos una pequeña introducción.

Las librerías de código las forman distintos archivos  los cuales realizan la comunicación con sensores, pantallas, y diverso hardware. Existen librerías oficiales y otras desarrolladas por la comunidad, así como diversos forks de cada una.

 

Para añadir las librerías que no vienen por defecto con arduino IDE, tenemos un gestor de librerías en el cual podemos  buscar  librerías nuevas,  y actualizar las ya instaladas. >Programa >Importar libreria >Gestor de librerias

 

gestor librerias arduino

 

Si tenemos una librería en formato zip y la queremos añadir, elegiremos Importar Programa >libreria >Añadir libreria

 

Además podemos añadir otros repositorios no oficiales a nuestro  maravilloso gestor de librerías; lo haremos desde: >Archivo >Preferencias >Gestor de URLs y tarjetas.
 
repositorios no oficiales librerias arduino
 

 
Para borrar alguna librería que nos este dando problemas o que ya no necesitamos, sólo tenemos que ir a la carpeta de arduino, y borrarla, cuando reiniciemos IDE ya habrá desaparecido.
 

/home/$USER/arduino/libraries → Carpeta GNU/Linux

 

\\Usuario\Documentos\Arduino\libraries → Carpeta Windows

 

 

En este caso hablaremos sobre el LCD 1602.

 
El LCD 1602  se puede conectar de dos formas:

  • Conexión Directa: Utiliza 16 pines lo cual es una perdida de recursos. Necesita la librería Liquid_Crystal.h .  Para su instalación necesitaremos de un potenciómetro y una resistencia de 330 homios. No hablaremos sobre este montaje pero os dejo un enlace por si alguno quiere curiosear.

 

  • Conexión I2C: Solo se emplean 4 pines positivo, negativo, sda, scl. Librerías necesarias,  Wire.h, Liquid_Crystal_I2C.h. Este módulo se añade a la pantalla lcd por medio de pines  soldados. El precio de este módulo ronda 1€, en páginas de e-commerce internacional.

 

modulo I2c arduino

 

Como la conexión directa supone una gran pérdida de recursos, optamos por una conexión I2C.

 

El bus I2C fue desarrollado por Philips, y consiste en una conexión maestro-esclavo. El bus maestro siempre inicia la transferencia, es posible comunicar varios maestros pero al menos uno de ellos deberá funcionar como esclavo. Para la comunicación se emplean dos líneas, una con señal de datos y otro con señal de reloj(SDA,datos y SCL reloj).

 

–> Añadiremos nuestro módulo I2C al Lcd o  podemos adquirir uno ya soldado. Las conexiones son muy sencillas.

 

–> Para probar nuestro LCD 16×2 I2C, realizaremos un sketch para ver su funcionamiento.

 

Las librerías a utilizar son Wire.h y  Liquid_Crystal_I2C.h, esta librería se puede utilizar con distintos tamaños de lcd, por ello hemos de definir las constantes que indican las filas y las columnas, además de indicar la dirección de nuestro módulo I2C.
 
Usaremos un escáner el cual nos mostrará la dirección de nuestro I2CEscaner I2C

 

Desde el monitor serial observamos la respuesta del sketch. Anotamos la dirección que nos da, es la dirección del módulo I2C y la necesitaremos para poder comunicarnos con el LCD.
 
escaner l2c arduino
 
Las distintas funciones que contiene la librería Liquid_Crystal_I2C.h las podemos encontrar en en siguiente enlace.

 

Comenzamos nuestro sketch incluyendo las librerías y definiendo nuestro lcd indicando su dirección y su tamaño, en el void setup iniciamos la librería con la función lcd.init(), además encendemos la retro-iluminación de nuestra pantalla con la función lcd.backlight().

 

#include <Wire.h>
 
#include <LiquidCrystal_I2C.h>
 
 
 
LiquidCrystal_I2C lcd(0x3F,16,2);  // dirección.filas,columnas  –LCD
 
void setup()
 
{
 
lcd.init();            // initialize the lcd
 
lcd.backlight();      //Retroiluminación
 
}

 

 

–> Para escribir en nuestro LCD tenemos que borrar la pantalla por si hay algo escrito, después situar el cursor en las coordenadas donde queremos que comience a escribir.  Las coordenadas las expresamos mediante la función lcd.setCursor(C,F);
 


–> para escribir usaremos la función lcd.print(“Texto a mostrar”), de esta forma mostraremos un texto de manera estática.

 

void loop()
 
{
 
lcd.clear;
 
lcd.setCursor(0,0);
 
lcd.print(&quot;Taller del Bit&quot;);
 
lcd.setCursor(0,1);
 
lcd.print(&quot;Aitor Ferrero&quot;);
 
}

 
lcd arduino
 

 

Tenemos que tener en cuenta que nuestro display lcd tiene unas dimensiones limitadas, si necesitamos mostrar toda la información de una vez  puede que nos sea insuficiente. En un caso similar optamos por qué el texto se muestre en movimiento lateral  de esa manera podremos ver toda la información que necesitemos.
 


– Para ello usaremos la función lcd.autoscroll(), está moverá el texto de manera automática de derecha a izquierda. Si queremos invertir el sentido en el que se muestra usaremos la función lcd.rightToLeft();.  
 


– Para evitar tener que estar cambiando el sentido en el que se muestra el string, podemos usar las funciones lcd.lcdDisplayLeft() ,lcd.lcdDisplayRight(), las cuales moverán el string a izquierda o a derecha, respectivamente.

 

 

#include <Wire.h>
 
#include <LiquidCrystal_I2C.h>
 
 
 
LiquidCrystal_I2C lcd(0x3F,16,2);  // dirección.filas,columnas  –LCD
 
void setup()
 
{
 
lcd.init();            // inicializa ellcd
 
lcd.backlight();      //Activa retroiluminación
 
 
 
}
 
 
 
void loop() {
 
lcd.setCursor(0, 0);
 
lcd.print(”        www.eltallerdelbit.com);
 
lcd.setCursor(0, 1);
 
lcd.print(// Aitor Ferrero // Tutoriales arduino”);
 
lcd.scrollDisplayLeft();
 
delay(1000);
 
}

 

 

De esta forma hemos visto un pequeño tutorial para aprender a configurar nuestro lcd arduino con i2c

 
Autoría: Aitor Ferrero