Tutorial de uso LCD con el adaptador I2C

Un LCD Arduino es un display de cristal líquido que se utiliza para mostrar información en proyectos de Arduino. Los LCD Arduino son populares debido a su facilidad de uso y bajo costo. Uno de los tipos más comunes de LCD Arduino es el LCD 16×2, que tiene una resolución de 16 caracteres por 2 líneas.

En el mercado podrás encontrar diferentes tipos y tamaños de LCD, pero las más comunes y usadas por la comunidad es la LCD 16x2, lo cual se refiere a 2 filas y 16 columnas (caracteres).

A continuación, podrás evidenciar algunos de los tipos existentes:

El LCD 16×2 o 20×4 se conecta a la placa Arduino mediante una serie de pines. Estos pines se utilizan para enviar señales de control y datos al LCD. Una vez conectado, el LCD Arduino puede mostrar cualquier tipo de información que se envíe a través de los pines. Esto puede incluir texto, números, gráficos, etc.

Comprendido el concepto del LCD y sabiendo que existe una alta variedad en el mercado, entraremos a realizar nuestra practica con el propósito de aprendes a usar una LCD con I2C, pero ahora se preguntaran que es ¿I2C? Este adaptador permite administrar de una manera mucho más óptima la distribución de puertos ya que se pueden llevar a cabo la presentación de datos a través de solamente dos cables.

¿Qué quiere decir eso?

Qué pasamos de tener una conexión de 12 jumper a 2 jumper esto reduce considerablemente el esquema de la práctica.

¿Verdad?

Pero ten en cuenta que, así como se tienen variedades de fabricantes y modelos en las pantallas LCD pasa los mismo con el o los adaptadores I2C, El Módulo adaptador LCD a I2C que usaremos está basado en el controlador I2C PCF8574, el cual es un Expansor de Entradas y Salidas digitales controlado por I2C. Por el diseño del PCB este módulo se usa especialmente para controlar un LCD Alfanumérico.

La dirección I2C por defecto del módulo puede ser 0x3F o en otros casos 0x27. Es muy importante identificar correctamente la dirección I2C de nuestro modulo, pues de otra forma nuestro programa no funcionará correctamente.

¿Cómo puedo identificar la dirección correcta de mi pantalla?

Para identificar la dirección especifica de nuestro módulo podemos utilizar un pequeño sketch de prueba llamado: I2C Scanner, el cual nos permite identificar la dirección I2C del dispositivo conectado al Arduino.

Para controlar el contraste de los dígitos en el LCD solo necesitamos girar el potenciómetro que se encuentra en el módulo, hasta quedar conformes con el contraste mostrado.

La luz de fondo se controla principalmente por software desde el Arduino, pero el módulo también permite desconectar el Led de la luz de fondo removiendo un jumper LED.

Conexión entre arduino y módulo adaptador LCD a I2C.

El adaptador LCD a I2C tiene los pines ordenados para conectar directamente al LCD, esto lo podemos hacer a través de un Protoboard o soldando directamente al LCD.

Paquete de pantalla del módulo LCD HD44780 1602 con interfaz I2C 2x16

Para conectar con el modulo con el Arduino solo utilizamos los pines I2C del Arduino (SDA y SCL) y alimentación (GND y 5V).

Adaptador LCD a I2CArduino Uno
GNDGND
VCC5V
SDAA4
SCLA5

Para la programación la pantallas LCD con arduino requiren el uso de la libreria LiquidCrystal_I2C para Arduino.

Las funciones que utiliza esta librería son similares a la librería LiquidCrystal de Arduino, revisaremos las funciones principales:

LiquidCrystal_I2C(lcd_Addr, lcd_cols, lcd_rows): Constructor, crea un objeto de la clase LiquidCrystal_I2C, con dirección, columnas y filas indicadas.

init(): Inicializa el modulo adaptador LCD a I2C, esta función internamente configura e inicializa el I2C y el LCD.

clear(): Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda (posición (0,0)).

setCursor(col, row): Posiciona el cursor del LCD en la posición indicada por col y row(x,y); es decir, establecer la ubicación en la que se mostrará posteriormente texto escrito para la pantalla LCD.

print(): Escribe un texto o mensaje en el LCD, su uso es similar a un Serial.print

backlight();: Enciende la Luz del Fondo del LCD.

Una vez hemos conocido las funciones principales de la libreria, haremos ejemplos usando la LCD 16x2 I2C.

Código fuente Ejemplo:

  1. Ejemplo mostrando un mensaje en nuestra pantalla LCD.

    #include <Wire.h> 
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27,16,2);  //
    
    void setup() {
      lcd.init();
      lcd.backlight();
      lcd.print("Hola Mundo");
    }
    
    void loop() {
      lcd.setCursor(0, 1);
      lcd.print(millis()/1000);
      lcd.print(" Segundos");
      delay(100);
    }
  2. Mostrando texto en nuestra pantalla LCD con desplazamiento.

    #include <Wire.h> 
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27,16,2);
    
    void setup() {
      lcd.init();
      lcd.backlight();
      lcd.setCursor(10, 0);
      lcd.print("www.4lpes.com");
      lcd.setCursor(4, 1);
      lcd.print("Prueba de desplazamiento");
    }
    
    void loop() {
      lcd.scrollDisplayLeft(); 
      delay(500);
    }

(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*