buenas amigos
soy nuevo en esto, agradeceré su soporte.
Quiero conectar un lcd 20x4 a un auruino uno Rev3 por I2C, porgo a continuacion el programa:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x3F,20,4);
void setup()
{
lcd.backlight();
lcd.init();
}
void loop()
{
lcd.clear();
lcd.print("mantto integral");
lcd.setCursor(0,1);
lcd.print("telefono:");
lcd.setCursor(0,3);
lcd.print("Temp Amb:");
delay(1000);
}
Los errores que me da son los siguientes:
sketch_jan27a:5: error: invalid conversion from 'int' to 't_backlighPol'
sketch_jan27a:5: error: initializing argument 3 of 'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, t_backlighPol)'
C:\Users\Santiago\Documents\Arduino\libraries\NewliquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':
C:\Users\Santiago\Documents\Arduino\libraries\NewliquidCrystal/LiquidCrystal_I2C.h:154: error: 'int LiquidCrystal_I2C::init()' is private
sketch_jan27a:11: error: within this context
Yo tuve muchos problemas al principio con este tipo de LCD y mas o menos lo tengo domado. el problema reside que tipo de LCD es y su correspondiente librería.
Si son de los 20x4 chinos los "ultimos" creo que funcionan con la libreria de Malpartida lo puedes ver en este enlace; https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Pero antes de nada lo que tienes que hacer es saber la dirección fisica del BUS I2C del LCD, esto lo puedes saber con este código;
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}
Pon unas capturas y te podré ayudar en caso contrario.
Saludos.