Artículos recientes

Novedades

Tutorial LCD con I2C, controla un LCD con solo dos pines

Tutorial LCD con I2C, controla un LCD con solo dos pines

En este tutorial aprenderemos a utilizar el Módulo adaptador de LCD a I2C y de esa forma poder controlar nuestro LCD Alfanumérico con solo dos pines de nuestro Arduino.

Este tutorial es similar al Tutorial LCD, conectando tu Arduino a un LCD1602 y LCD2004, con la pequeña diferencia que ahora utilizaremos un Módulo adaptador LCD a I2C. Trabajaremos los mismos ejercicios  del primer tutorial y de esa forma demostraremos que utilizar el módulo adaptador es tan sencillo como si trabajáramos directamente con el LCD.

 

Hardware del Módulo adaptador LCD a 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. 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. Si en caso existiera la necesidad de trabajar con más de un LCD podemos modificar la dirección I2C del modulo adaptador. Para esto es necesario soldar los puentes A0, A1 y A2 presentes en el módulo, estos tres puentes son los bits menos significativos de la dirección I2C del módulo. La dirección 0x3F en binario sería: 0|0|1|1|1|A2|A1|A0 y la dirección 0x27: 0|0|1|0|0|A2|A1|A0. Por defecto A0, A2, A1 valen 1 pero si soldamos los puentes, estos se conectan a tierra teniendo un valor 0. Por ejemplo si soldamos los tres puentes la nueva dirección sería 0|0|1|0|0|0|0|0 (0x20), para un chip que anteriormente era 0x27.

Módulo adaptador LCD a I2C

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.

 

Conexiones 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.

conexion adaptador LCD a I2C

Para conectar con el modulo con el Arduino solo utilizamos los pines I2C del Arduino (SDA y SCL) y alimentación (GND y 5V), los pines I2C varían de acuerdo al modelo de Arduino con el que trabajemos, en la siguiente tabla podemos ver cuales son los pines I2C para cada modelo de Arduino.

Adaptador LCD a I2C

Arduino Uno, Nano, Mini.

Arduino Mega , DUE

Arduino Leonardo

  GND

GND

GND

GND

  VCC

5V

5V

5V

  SDA

A4

20

2

  SCL

A5

21

3

   

conexion arduino y LCD I2C

  

* Las conexiones para el LCD 20 x 4 son las mismas.

 

Librería LiquidCrystal_I2C para Arduino

Existen diferentes tipos y versiones de librerías para trabajar con el módulo Adaptador LCD a I2C, información más completa pueden encontrar en: http://playground.arduino.cc/Code/LCDi2c , nosotros usaremos la librería LiquidCrystal_I2C

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)

Función 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

scrollDisplayLeft()

Se desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la izquierda.

scrollDisplayRight()

Se desplaza el contenido de la pantalla (texto y el cursor) un espacio a la derecha.

backlight();

Enciende la Luz del Fondo del LCD

noBacklight();

Apaga la Luz del Fondo del LCD

createChar (num, datos)

Crea un carácter personalizado para su uso en la pantalla LCD. Se admiten hasta ocho caracteres de 5x8 píxeles (numeradas del 0 al 7). Dónde: num es el número de carácter y datos es una matriz que contienen los pixeles del carácter. Se verá un ejemplo de esto más adelante.

Ahora que hemos repasado la librería veamos algunos ejemplos:

 

Ej 1. Un Hola mundo con Arduino y LCD

Mostraremos  texto y un valor numérico en el LCD, para esto cargamos el siguiente sketch:

#include <Wire.h> 
#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);
}

Después de cargar, en su LCD deben obtener el siguiente resultado

 

 Hola mundo con LCD I2C

 

La programación es similar para un LCD de 20x4, solo  hay que modificar en:

LiquidCrystal_I2C lcd(0x27,20,4);

 

Ej 2. Desplazando el texto en el LCD

En este ejemplo para desplazar el texto usaremos la función scrollDisplayLeft(). El codigo es el siguiente:

#include <Wire.h> 
#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 en una posición  central.
  lcd.setCursor(10, 0);
  lcd.print("WWW.NAYLAMPMECHATRONICS.COM");
  lcd.setCursor(4, 1);
  lcd.print("Tutorial LCD, Test de desplazamiento  ");
}

void loop() {
  //desplazamos una posición a la izquierda
  lcd.scrollDisplayLeft(); 
  delay(500);
}

El resultado será el texto desplazandose de derecha a izquierda.

desplazamiento de texto con LCD I2C

 

Ej 3. Mostrando datos de sensores o variables en el LCD

En este ejemplo mostramos en el LCD variables, que pueden representar valores de sensores u otros datos. Para simular los sensores usaremos potenciómetros conectados a los puertos analógicos.

#include <Wire.h> 
#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();
  
}

void loop() {
  int sen1=analogRead(A0);
  float sen2=analogRead(A1)*(5.0 / 1023.0);
  float sen3=analogRead(A2)*(100.0 / 1023.0);
  int tiempo=millis()/1000;
  // Cursor en la primera posición de la primera fila
  lcd.setCursor(0,0);
  lcd.print("ADC:");
  lcd.print(sen1);
  lcd.print("   ");
  // Cursor en la 11° posición de la primera fila
  lcd.setCursor(10,0);
  lcd.print("V:");
  lcd.print(sen2,1);//1 decimal
  lcd.print("V  ");
  // Cursor en la primera posición de la 2° fila
  lcd.setCursor(0,1);
  lcd.print("T:");
  lcd.print(sen3,1); //1 decimal
  lcd.print("337C  "); // "337" -> "°"
  // Cursor en la 11° posición de la 2° fila
  lcd.setCursor(10,1);
  lcd.print("t:");
  lcd.print(tiempo);
  lcd.print(" s  ");
  
  delay(200);
  
}

El resultado debe ser el siguiente:

 

 Datos y variables en LCD I2C

 

Ej 4. Agregando nuevos caracteres a nuestro LCD

En algunos casos el LCD no incluye por defecto los caracteres que necesitamos, o deseamos dibujar caracteres personalizados, en este caso usamos la función createChar () pero antes estudiemos como está constituido un carácter:

Un carácter está formado  por una matriz de 5x8 pixeles  los cuales se representan por 8 bytes, uno para cada fila, los 5 bits menos significativos representan los pixeles del carácter:

  

caracter alfanuemrico LCD

  

Como máximo podemos crear 8 caracteres nuevos.

Para este ejemplo crearemos los siguientes caracteres:

 pixeles nuevos caracteres LCD

   

A continuación se muestra el código para implementar los nuevos caracteres.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

//Crear el objeto lcd  dirección  0x3F y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x3F,16,2);  //
byte N[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B10001,
B10001,
B00000,
};
byte A[8] = {
B11111,
B10001,
B10001,
B10001,
B10001,
B11111,
B10001,
B00000,
};
byte Y[8] = {
B10001,
B10001,
B10001,
B10001,
B11111,
B00100,
B00100,
B00000,
};
byte L[8] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B11111,
B00000,
};
byte M[8] = {
B11111,
B10101,
B10101,
B10101,
B10101,
B10101,
B10101,
B00000,
};
byte P[8] = {
B11111,
B10001,
B10001,
B10001,
B11111,
B10000,
B10000,
B00000,
};
byte cara[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,
};
byte cuerpo[8] = {
B01110,
B01110,
B00100,
B11111,
B00100,
B01010,
B10001,
B00000,
};

void setup() {
  // Inicializar el LCD
  lcd.init();
  
  //Encender la luz de fondo.
  lcd.backlight();
  
  //creamos los nuevos caracteres
  lcd.createChar (0,N);
  lcd.createChar (1,A);
  lcd.createChar (2,Y);
  lcd.createChar (3,L);
  lcd.createChar (4,M);
  lcd.createChar (5,P);
  lcd.createChar (6,cara);
  lcd.createChar (7,cuerpo);
 // Escribimos el texto en el LCD
  lcd.setCursor(0, 0); 
  lcd.print("Tutorial LCD_I2C");
  lcd.setCursor(0, 1);
  lcd.write (byte (7));
  lcd.print(" ");
  lcd.write (byte (6));
  lcd.print(" ");
  lcd.write (byte (0));
  lcd.write (byte (1));
  lcd.write (byte (2));
  lcd.write (byte (3));
  lcd.write (byte (1));
  lcd.write (byte (4));
  lcd.write (byte (5));
  lcd.print(" ");
  lcd.write (byte (6));
  lcd.print(" ");
  lcd.write (byte (7));
  

  
}

void loop () {}

El resultado del ejemplo anterior es el siguiente:

  

nuevos caracteres LCD I2C

  

Los ejemplos anteriores se trabajan similar con un LCD2004

 

Pueden adquirir los materiales usados en este tutorial en nuestra tienda

Arduino Uno R3

Módulo adaptador LCD a I2C

LCD1602 Azul Backlight

LCD2004 Azul Backlight

 

Tutoriales Relacionados

Tutorial LCD, conectando tu arduino a un LCD1602 y LCD2004

Tutorial pantalla TFT táctil con Arduino

 

Tags: LCD Display

63 Comments

    • Avatar
      Matias
      jul 18, 2016

      Hola que tal? Saludos desde Argentina. Primero que nada muchisimas gracias por la creacion de este contenido. A mi parecer, el mejor blog de habla hispana de Arduino entre todos los que conozco por su gran diseño web en el buscador de contenido y la facil y detallada explicacion! Envio este mensaje ademas, porque resulta que la libreria que descargué en este tutorial, solamente me imprimia en el display la columna 0. Reemplace la libreria por la del link a continuacion https://codeload.github.com/marcoschwartz/LiquidCrystal_I2C/zip/master y sin cambiar absolutamente NADA me anduvo perfectamente. Saludos y segui asi!!

      • Avatar
        Naylamp
        jul 20, 2016

        Hola Matias, gracias por el comentario, estaremos revisando la librería del tutorial. Seguiremos desarrollando nuevos tutoriales, saludos desde Perú.

      • Avatar
        emerson
        ago 31, 2016

        Hola amigo, me esta pasando exactamente lo mismo, pero descargue la libreria que pusiste y me sigue pasando lo mismo solo me imprime la primera letra. tendras alguna otra solucion porsiacaso ?

        • Avatar
          ivan
          may 11, 2017

          Consigue una version de ide menor a la actual a mi con la 1.5.7 me funciona

        • Avatar
          Gustavo
          oct 3, 2017

          Anda a "mis documentos" o "documentos" y borra la primer librería que instalaste, por mas que la borres de arduino/librerias quedan en mis documentos, no se porque carajo se copian ahí también,, GRACIAS MATIAS

      • Avatar
        Gustavo Solano
        oct 2, 2017

        Gracias por ese aporte Matias.

    • Avatar
      pedro
      ago 5, 2016

      Hola Naylamp:Tengo un arduino mega y unaLCD con I2C, he comiado tu codigo y me funciona pero solo me sale en la pantalla la primera letra del texto la W en la primera fila y la T de la segunda fila.¿En que estoy equivocandome?,¿que es lo que me falta?. Soy nuevo en esto de arduino y mis conocimientos son pocos por ahora hasta que vaya aprendiendo.Que con tutoriales como el tuyo los que estamos metiendonos en este mundo de arduino nos hace mucho bien y nos ayuda un monton. GRACIAS Y UN SALUDO, Pedro lopez

      • Avatar
        Naylamp
        ago 12, 2016

        Hola pedro, ¿cuál de los programas es el que te está fallando, o en todos los ejemplos del tutorial tienes el mismo error? , si estas usando un lcd diferente al LCD de 16x2 tienes que modificar dichas dimensiones en el código. Si el error te sale en todos los ejemplos también puede ser que esté fallando la libraría, prueba con la librería del comentario de Matías (cometario anterior)

      • Avatar
        Rafa_RGB
        jul 2, 2017

        Hola Pedro,Me llegaron hace unos días las backplates y displays 20x4 de China. He estado varios días igual que tú, con sólo el primer caracter en cada línea...La dirección de las "mochilas" en mi caso es0x3F, así que OJO y usad I2CScan para buscar en cada caso, no sea que también sufráis con esto.( Como hice yo.... 8( )La solución al trexto ha sido DESCARGAR el zip que referenciaba Matías y ha empezado a funcionar todo como una reloj suizo.NOTA: Siento el "reflote".

    • Avatar
      napoleon
      ago 27, 2016

      Hola, espectacular post!, gracias por la info! pregunta, tengo una Elego UNO R3 + Display Qpass LCD 2x16 con I2c, sobre Arduino 1.6.9 solo aparecen la primera letra de cada palabra, he descargado ciento de librerías y no he resuelto el asunto

      • Avatar
        Naylamp
        ago 31, 2016

        Estimado Napoleón, Ese error puede ser por la librería, intenta con la librería que recomienda Matias en el primer comentario, si no solucionas, prueba con otra versión del IDE de Arduino para descartar que sea tu compilador

    • Avatar
      Reinaldo
      nov 1, 2016

      hola,Al cargar el primer programa, me aparece este errorClass LiquidCrystal_I2C has no member named `init`ayudenme porfa.gracias

      • Avatar
        Naylamp
        nov 5, 2016

        Hola Reinaldo, es un problema de libraría, asegúrate de haber importado correctamente tu librería o intenta instalar nuevamente la librería.

    • Avatar
      Uriel
      ene 6, 2017

      Buenas noches compañeros, les comento que adquirí este modulo y la pantalla LCD pero no me funciona, ya cargue ambas librerías y me sigue sin funcionar, si me pudieran ayudar se los agradecería.

      • Avatar
        Naylamp
        ene 7, 2017

        Hola Uriel, tienes errores al compilar? Te carga algunos caracteres en el LCD? Si tu LCD no muestra actividad puedes ser porque no está recibiendo datos del arduino, comprueba tu conexión y comprueba la dirección I2C, por lo general es 0x27 y configurable de 0x20 a 0x27, pero también hemos encontrado módulos que trabajan con dirección 0x3F.

    • Avatar
      Jesly
      mar 15, 2017

      Porque el init no se me pinta de color anaranjado; a que se debe ???

      • Avatar
        Naylamp
        mar 26, 2017

        Hola Jesly, puede ser por la versión del arduino que tienes o también porque recién has instalado la librería, intenta con cerrar y abrir el IDE de arduino.

    • Avatar
      juan
      abr 3, 2017

      hola naylamp, no me funciona ninguno de los codigos anteriores , que esta pasando ? , esta quemado el driver tal vez, que puedo hacer ?

      • Avatar
        Naylamp
        abr 12, 2017

        Hola Juan, para descartar problemas de librería has un escáner I2C, copia el código de las siguiente página: http://playground.arduino.cc/Main/I2cScanner después de cargar en el arduino abre el monitor serial, el programa busca todos los dispositivos conectados al bus y te muestra la dirección I2C. Si funciona normal esto, debe ser entonces un problema de librería o conexión

    • Avatar
      Iñigo Garmendia
      abr 15, 2017

      Hola, espectacular post! Tengo un arduino UNO Y una LCD I2C. Al principio probé con bastantes librerías de otros webs . Algunas me compilaban y otras no y las que compilaban no hacían nada, esto es no funcionaban. El otro día me paso una el profesor y por fin me apareció algo , pero solo la primera letra de cada fila. No se cual es el problema. He probado con tantas librerias que ya no se cual no he utilizado. Cual puede ser el problema? Puede ser algo que no sea la librería? Si es la librería, por una parte me gustaría saber que librería es la buena y si aparte de esa y la librería wire se necesita otra librería como liquidcrystal o lcd.h ?Ya que en cada post usan una diferente. Tego prisa ya que solo me falta esto para entregar el proyecto que seria para el 23. Gracias de antemano.

      • Avatar
        Naylamp
        abr 27, 2017

        Hola, Si te sale error de compilación es porque la librería está mal instalada, borra manualmente la librería e impórtala desde el gestor de librerías, si puedes también intenta probar con otra versión del IDE. Si compila normal pero no funciona podría ser por una mala conexión o la dirección i2c no es la correcta, la conexión varía de acuerdo al modelo de arduino que tengas y la dirección i2c lo puedes buscar cargando el siguiente programa: http://playground.arduino.cc/Main/I2cScanner . Intenta probar con la librería del primer comentario, con esa soluciona un problema similar al tuyo.

    • Avatar
      jesus
      abr 29, 2017

      funciona muy bien en mi placa arduino leonardo el scanner me indico la direccion 0x3F y listo lo cambie.y funcino

    • Avatar
      maria
      jun 11, 2017

      DISCULPEN SOY NUEVA EN ESTO ,Y ESTOY UNIENDO UN HUELLERO DACTILAR CON EL DISPLAY , PERO TRABAJO CON EL INTERFAZ . HE BUSCADO MUCHAS LIBRERIAS QUE ME UNIERAN LOS DOS ,PERO NO HE TENIDO EXITO :( .En su mayoria me lo dan pero con conexion sin interfaz .SI ALGUNO DE USTEDES SUPIERA COMO SON LAS CONEXIONES DE ESTE CIRCUITO UNIDO SE LO AGRADECERIA MUCHO : HULLERO-LCD-(con interfaz) en ARDUINO UNO

      • Avatar
        Naylamp
        jun 18, 2017

        Hola María, en realidad no debería afectar el funcionamiento, nos indicas que tipo de sensor de huella dactilar estas usando?. El LCD se trabaja por I2C y así el sensor dactilar fuese I2c(a no ser que tenga la misma dirección) no debe afectar el funcionamiento entre ellos. Debe ser un problema de integración en tu programa.

    • Avatar
      jorpal13
      jul 14, 2017

      buenos dias comáñero, resulta que he intentado con su codigo de liquidcrystal_i2c para un lcd de 20x4 y arduino due y no me funciona ya le he hecho de todo y nada, usted de por casualidad no tiene la libreria modificada para esta placa se lo agradeceria mucho, que funcione bien, bye.

      • Avatar
        Naylamp
        jul 30, 2017

        Hola, Si en el LCD muestra lo caracteres incompletos prueba con la libraría del primer comentario, pero si no muestra nada es porque no se está comunicando el modulo con el arduino, para descartar problemas de librería o de dirección i2C has un escáner I2C, copia el código de las siguiente página: http://playground.arduino.cc/Main/I2cScanner después de cargar en el arduino abre el monitor serial, el programa busca todos los dispositivos conectados al bus y te muestra la dirección I2C. Recuera que los pines i2c para el Due son el 20 y 21.

    • Avatar
      Jair_jair
      ago 4, 2017

      Hola amigo que tal, tengo una duda, estoy haciendo un proyecto para un incubadora , tengo un sensor dht22 y display con el I2C 16x2 y le incorpore 2 botones para ajustar la temperatura deseada (+ y -) y que si el sensor detecta mas temperatura de la deseada encienda un ventilador .... ya quedo, solo que cuando oprimo los botones para subir o disminuir a la temperatura que el usuario quiera, debo dejar oprimido el boton unos 7 s para que cambie el valor en el display (de 1 en 1 )..... sabes a que se debe esto? tengo una tarjeta arduino UNO......

      • Avatar
        Naylamp
        ago 22, 2017

        Hola Jair, seguro debes estar haciendo pausas o procesos largos en cada iteración del loop(), tienes que asegurarte en leer más seguido los botones o leer en diferentes lugares de tu código

    • Avatar
      Jazheel Quiroz
      sep 11, 2017

      Hola Primero que nada, muchas muchas felicidades, me parece una excelente explicación la que estás dando...Me gustaría saber si podrías explicarme cómo hacer un menú de selección con arduino y lcd...ya intenté muchas veces y ninguno me queda :( Por favor

    • Avatar
      Juan Antonio
      oct 3, 2017

      Tengan cuidado con la direccion por defecto!! Yo tenía la 0x3F!!!!!

    • Avatar
      Juan Antonio
      oct 3, 2017

      Tengan cuidado con la direccion por defecto!! Yo tenía la 0x3F!!!!!

    • Avatar
      gabriel
      dic 4, 2017

      amigos ya eh echo toda la conexion y la programacion pero no me funciono....luego probe con el codigo para revisar mi i2c y en el monitor serie me dice "No i2c devices found" alguien me podria dar una razon o explicacion de que tengo mal, mi i2c lo solde directo y eh revisado que la soldadura no se junten...no se que hacer ayuda!!!!!!

    • Avatar
      sergio
      dic 11, 2017

      ola a mi no me andubo. el problema es lcd.int() replace por lcd.begin() y anda perfect

    • Avatar
      Fernando Castro
      dic 26, 2017

      Muy bueno el programa y con la libreria del primer comentario jalo muy bien, mi duda es que como le hago para que este programa lea o me de correctamente las lecturas de un sensor de temperatura a traves del LCD I2C ya probe en los demas pines y nada no se si tengo que agregarle algo mas a este codigo para que lea las temperaturas, para un sensor LM35 y el DS18B20, no se si este codigo lea a ambos sensores, me podrian ayudar se los agradeceria mucho, wl programa esta en el arduino UNO R3.

    • Avatar
      JHONNY
      ene 24, 2018

      saludos amigos. ante que nada quiero felicitarlos por sus sugerencias. he tratado de desarrollar el proyecto del Juego “Runner Scape” con display LCD 1602 y comunicación I2C. y no he logrado nada. gracias a sus consejos obtuve el id de modulo.... 0X3F..... pero el código no funciona siempre sale error... por culpa de este comando.. // Declaración del objeto // Terminales de conexión del LCD // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); como hacer... agradeceré su apoyo...

    • Avatar
      Guillermo Malagón Zamora
      may 12, 2018

      Tengo una duda, las salidas del arduino al lcd deben ser forzosamente A4 y A5?, lo que pasa es que estoy trabajando con un RFID y tengo ocupadas las salidas analógicas.Saludos y gracias por su página tan práctica y llena de ideas para trabjar.

    • Avatar
      ing-josemartinsaavedra
      may 29, 2018

      ISTP AMG.la calida piura peru un agradecimiento,mis alumnos seran sus clientes desde ahora ,

    • Avatar
      VALERIA
      jun 6, 2018

      hola!! si es que alguien podria ayudarme porfavor!!! , yo tengo un LCD DE 20X4 y copie el codigo, cambie las dimensiones pero no me aparece absolutamente nada en el LCD, solamente alumbra la pantalla , que podria estar pasando ? ya intente con un monton de ejemplos diferentes y en todos me aparece lo mismo

      • Avatar
        Julio Hurtado
        jul 28, 2018

        Hola, valeria. Eso suele ocurrir cuando conectas por primera vez la Pantalla al Arduino. Lo que debes hacer es mover el potenciometro para que puedas visualizar el contenido de tu LCD. Previo a ello, debes verificar que hayas conectado todo en su lugar.

    • Avatar
      Jorge
      jun 9, 2018

      Desde Uruguay te mando muchas felicitaciones por este artículo. Me aclararon muchas dudas

    • Avatar
      David
      jul 12, 2018

      Hola! Dices que se puede controlar la luz de fondo por software. Serias tan amable de decirme como? Saludos desde España

    • Avatar
      Julio Hurtado
      jul 28, 2018

      Muy buen tutorial, Felicitaciones de una vez que claro el manejo de la librería I2C.

    • Avatar
      Matute
      ago 8, 2018

      Gracias Matias fue de muvha ayuda .. soy nuevo en esto y me estuve varias horas hasta que mire tu comentario Matias..saludos y gracias tambien por el tutorial..

    • Avatar
      khalid abdeddaim
      oct 8, 2018

      gracias era muy útil para me

    • Avatar
      lobatos
      nov 1, 2018

      bro muy buen material me a servido mucho, me gusto tu contador de segundos solo que me queda la duda de¿ como puedes parar el incremento de segundos en tu programa? si me pudieras ayudar te lo agradeceria.

    • Avatar
      Escualo
      nov 18, 2018

      Hola. Si conectamos pulsador (o switcs) en A0, A1, A2, podemos cambiar la dirección de la pantalla en funcionamiento? Con esto podría mostrar distinta info en el mismo display. Gracias!!

    • Avatar
      Egor
      nov 18, 2018

      Hola. Si conectamos pulsador (o switcs) en A0, A1, A2, podemos cambiar la dirección de la pantalla en funcionamiento? Con esto podría mostrar distinta info en el mismo display. Gracias!!

    • Avatar
      andres
      nov 24, 2018

      hace 1 dia que me venia quebrando la zabeca y el LCD IIC no funcionaba para nada hasta que di con esta pagina y leyendo los comentarios y cambiando la libreria Voila, gracias graciasa gracias todo full, saludos desde Puerto Varas, Chile

    • Avatar
      Gary Valenzo
      dic 20, 2018

      Buenas tardes. Con este modulo, cuantos Display puedo conectar? Ya que veo que se conecta en entradas Analogas Gracias

    • Avatar
      Franklin
      feb 1, 2019

      Hola, necesito el código y/o direcciones a enviar a la interfase para programarlo usando hi-tech. Gracias

    • Avatar
      FER
      feb 24, 2019

      Hola ! tengo una placa Arduino mega y me da fallo en la compilacion de este programa. podriais mandarme el sketch completo ? mil gracias

    • Avatar
      reviejo
      abr 14, 2019

      Gracias por la claridad. Que funcione un dht 22 más un bmp180 y que salga todo por el LCD es casi un milagro. teniendo en cuenta mi edad me dan una satisfacción enorme

    • Avatar
      Nayo L
      jun 10, 2019

      Hola, gracias por la informacion, muy detallada y entendible. Una consulta sobre el protocolo 12C, como se puede hacer para mostrar numeros grandes en un display de 20x4? Espero que puedas ayudarme. Gracias. :)

    • Avatar
      Adrian V
      jul 17, 2019

      Hola, soy nuevo en este blog.Me conseguí un LCD con I2C pero no consigo hacerlo funcionar con un arduino pro-mini 5VYa instalé la librería y pude compilar el código, pero solo se prende el LCD y no muestra nada en pantalla...Qué podrá ser?

    • Avatar
      Juan
      ago 9, 2019

      Muchas Gracias! muy claro el tutorial y muchas gracais a Julio Hurtado por su comentario, pase 20 minutos revisando por que no aparecia nada en el display. Imprescindible tener en cuenta regular el brillo del LCD si es la primera vez que lo utilizan. Saludos

    • Avatar
      JAIRO
      oct 9, 2019

      Excelente tutorial, gracias por compartir tus conocimientos!

    • Avatar
      Dario
      oct 24, 2019

      hola! quisiera saber, en el caso de querer tener 4 displays LCD con sus respectivos modulos I2c, cual es la distancia maxima que puedo tener entre el arduino y cada uno de ellos sin que se pierda la señal ?

    • Avatar
      Lalo
      nov 26, 2019

      Hola, disculpen ¿se tienen que usar exclusivamente los pines A4 y A5 para este modulo? o ¿puedo utilizar otros?

    • Avatar
      Ernesto
      dic 4, 2019

      Buen dia! Cuando hago la carga del IDE me dice que que LIBRERIA INVALIDA... como puedo solucionar esto?

Leave a Reply

* Name:
* E-mail: (Not Published)
   Website: (Site url withhttp://)
* Comment: