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