Problemas con tipos de i2c en pantallas lcd 20x4

hola, tengo pantallas lcd 20x4 i2c pero estas vienen con distintos I2C, cuando agrego el codigo para que las pantallas me muestren el texto que ingrese solo uno de estos I2C me funciona.

el codigo que utilizo es el siguiente(uso el mismo en ambas):

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

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

void setup()   
{
 Serial.begin(9600);  

 lcd.begin(20,4);         
 for(int i = 0; i< 3; i++)
 {
   lcd.backlight();
   delay(250);
   lcd.noBacklight();
   delay(250);
 }
 lcd.backlight();  

 lcd.setCursor(3,0); //Start at character 4 on line 0
 lcd.print("Hola!");
 delay(1000);
 lcd.setCursor(2,1);
 lcd.print("Mundo");
 delay(1000);  
 lcd.setCursor(0,2);
 lcd.print("LCD 20 por 4 Lineas");
 lcd.setCursor(0,3);
 delay(2000);   
 lcd.print("LCD");
 delay(8000);
 
 lcd.setCursor(0,0); //Start at character 0 on line 0
 lcd.print("Start Serial Monitor");
 lcd.setCursor(0,1);
 lcd.print("Type chars 2 display");  

}

void loop() 
{
 {
   if (Serial.available()) {
     
     delay(100);      
     lcd.clear();

     while (Serial.available() > 0) {
       lcd.write(Serial.read());
     }
   }
 }
}

dejo unas imagenes para que vean mejor la diferencia de estos componentes:

No funciona con el codigo

Si funciona con el codigo

si algun usuario sabe como poder solucionar este problema, favor ayudarme, tengo 10 pantallas con I2C y solo una me funciono y es la que tiene el componente de la segunda foto, todas las demas traen el que sale en la primera y no me funcionan, ayudenme por favor

Por favor usa tag para códigos, en la misma barra que usaste el de imágen, a la izquierda esta </> que es el de códigos.
Selecciona todo el código y click ahi.

Esta linea no va

#include <LCD.h>

Además si no funciona prueba con esta línea solamente

LiquidCrystal_I2C lcd(0x27)

;

probe lo que me dices en el post y aun no me funcionan

Esos conversores de i2c a veces tienen direcciones diferentes, por defecto tienen o 0x20 o 0x27, con la opción de cambiar la dirección por si quieres usar varias pantallas a la vez.

prueba poniendo.

LiquidCrystal_I2C lcd(0x27,20,4)

ó con la dirección 0x20

LiquidCrystal_I2C lcd(0x20,20,4);

Usa el scanner I2C para detectar la dirección de tus LCDs problemáticos

La mía era 0x3F.

Haz caso a Surbyte y usa el scanner de diispositivos en el que te dirá qué dirección tienes en cada uno. También, busca información sobre cada uno de tus adaptadores i2c por qué permiten cierta cantidad de direcciones haciendo unos puesntes. En la foto de la que "si" te fiñunciona se ven claramente A0, A1 y A2. En función de en que pads hagas puentes tendrás una dirección u otra.

Esto es importante que lo tengas claro, así puedes tener 2 opciones en tus proyectos... o bien tener 2 pantallas a la vez que muestren cosas diferentes, o bien poder intercambiar las pantallas sin tener que tocar nada

gracias por responder, use el scanner y me mostro 0X3F como dijiste, ahora ya esta solucionado gracias

Agrega [Solucionado] a tu título

Tenía el mismo problema y me ayudo a solucionarlo muchísimas gracias.

surbyte:
Usa el scanner I2C para detectar la dirección de tus LCDs problemáticos

Hola Diego el problema que tenes es que hay dos versiones de conversores y logicamente tienen "direcciones" diferentes.la placa que tiene los tres pista A0,A1 y A2 tiene la direccion 0x3F por default mientras que la que dice LMC1602 tiene 0x27 o tambien 0x20.

Si tene la placa con las 3 A tenes que modificar le programa donde dice :

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); cambar el 0x27 a 0x3F y funcionara!.

Saludos