¡Esta es una revisión vieja del documento!


[I2C] PCF8574: Módulo controlador de LCD y código para Arduino

  • Módulo con interfaz serie I2C LCD1602 para Arduino.
  • Compatible con LCD 1602.
    • El contraste se ajusta mediante potenciómetro: recuadro azul de la figura adjunta.
    • La luz, de disponerla el display, se activa mediante el puente LED: Puente a la izquierda en la figura adjunta.
  • Alimentación: 5 V.
  • Programación: Se recomienda utilizar resistencias pull-up o pull-down para que las líneas tengan un estado definido al inicio.

El controlador de LCD I2C es un dispositivo que nos permite controlar una pantalla a través del bus I2C, usando únicamente dos cables.

En esta entrada aprendemos a manejar un display LCD Hitachi con controlador HD44780, una familia de pantallas barata y sencillas de emplear.

Pero usar esta pantalla directamente desde Arduino requería emplear una gran cantidad de pines de Arduino, lo que supone un enorme desperdicio de recursos, que deberían estar ocupados en cosas mucho más importantes que encender un simple display.

Una alternativa recomendable es usar un controlador que permita acceder al LCD a través del bus I2C. Este controlador LCD I2C puede conectarse a cualquier LCD Hitachi HD44780 y reduce la cantidad de cables necesarios a dos.

Internamente el controlador LCD I2C es una variación del extensor de entradas y salidas digitales PCF8574, especialmente adaptado para pantallas LCD Hitachi HD44780. Incluso incorporan un potenciómetro para regular el backlight del LCD.

El controlador LCD I2C normalmente se entrega por separado, en cuyo caso tendremos que soldarlo al display LCD.

  • El uso es similar a la librería LiquidCrystal convencional.
  • El siguiente sketch muestra el uso de las funciones de la librería para mostrar los textos “Linea 1” y “Linea 2” en una pantalla de 16×02.
    pcf8574_lcd.ino
    #include <Wire.h> 
    #include <LiquidCrystal_I2C.h>
     
    LiquidCrystal_I2C lcd(0x27, 16, 2);  // Inicia el LCD en la dirección 0x27, con 16 caracteres y 2 líneas
     
    void setup()
    {
       lcd.begin();                      
       lcd.backlight();
       lcd.setCursor(0, 0);
       lcd.print("Linea 1");
       lcd.setCursor(0, 1);
       lcd.print("Linea 2");
       delay(2500);
       lcd.clear();
    }
     
    void loop()
    {
    }
  • Otro ejemplo
    #include <LiquidCrystal_I2C.h>
     
    //Crear el objeto lcd  dirección  0x3F y 16 columnas x 2 filas
    LiquidCrystal_I2C lcd(0x3F,16,2);  //
     
    void setup() {
      // Inicializar el LCD
      lcd.init();
     
      //Encender la luz de fondo.
      lcd.backlight();
     
      // Escribimos el Mensaje en el LCD.
      lcd.print("Hola Mundo");
    }
     
    void loop() {
       // Ubicamos el cursor en la primera posición(columna:0) de la segunda línea(fila:1)
      lcd.setCursor(0, 1);
       // Escribimos el número de segundos trascurridos
      lcd.print(millis()/1000);
      lcd.print(" Segundos");
      delay(100);
    }
  • doc/tec/lab/bus_i2c/pcf8574_lcd/inicio.1774719792.txt.gz
  • Última modificación: 2026/03/28 18:43
  • por fepg