//DT Studio
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.begin(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello");
}
void loop()
{
}
Las librerias, hay que instalarlas en la carpeta de usuario/arduino. Si sigue sin funcionarte, quizá es porque todavía tienes instalada la libreria antigua.
Vuelvo a lo de la librería. Mira en "Mis documentos\arduino\libraries" si está la librería antigua allí. Bórrala, y copia la nueva allí, pero renombra la carpeta como LiquiCrystal_I2C, ya que si la dejas como viene en el ZIP, el IDE la puede confundir por la LiquidCrystal que lleva de origen.
No instales nunca las librerías adicionales en la carpeta de instalación del IDE de arduino, ya que al re-instalar versiones nuevas, se borrarían.
Revisa también esto último, que no hayas metido la librería en la carpeta de instalación del IDE.
Carga el siguiente código en el arduino, y mira si te detecta el módulo I2C y la dirección I2C. Los resultados aparecen por la consola serie.
// --------------------------------------
// i2c_scanner
//
// Version 1
// This program (or code that looks like it)
// can be found in many places.
// For example on the Arduino.cc forum.
// The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
// Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26 2013
// V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
// by Arduino.cc user Krodal.
// Changes by louarnold removed.
// Scanning addresses changed from 0...127 to 1...119,
// according to the i2c scanner by Nick Gammon
// http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
// As version 4, but address scans now to 127.
// A sensor seems to use address 120.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//
#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
}
OK, pues tienes un problema, parece que no comunica por I2C, pero lo normal con el I2CScanner, es que, si no encuentra ningún dispositivo, debe poner esto:
I2C Scanner
Scanning...
No I2C devices found
Y si lo encuentra, esto:
I2C Scanner
Scanning...
I2C device found at address 0x27 !
done
Pero que se quede en Scanning... me parece muy extraño.
Por cierto, acabo de probar tu librería inicial, con tu código inicial, y me funciona perfectamente, con lo que lógicamente, tienes un problema de comunicación I2C.
Prueba el código del I2C Scanner, sin nada conectado al arduino, a ver si te dice que no encuentra ningún dispositivo, o se queda escaneando, ya que sospecho que tu módulo LCD-I2C, podría estar averiado.
He comprobado que si unes los pines SDA y SCL del arduino, cortocircuitándolos entre ellos, se queda en Scanning... , de forma que si el módulo está averiado, con ambos pines cortocircuitados, da ese resultado.
Lo dicho, prueba scanner si nada conectado al arduino y nos comentas.
Hola Carmeloco está mañana fui a ver a mi profesor de electronica industrial y tras probarlo con el osciloscopio hemos llegado a la conclusión de que el modulo está averiado. Muchas gracias por tu ayuda