Comunicar pantalla LCD mediante I2C

Me surge un problema a la hora de comunicar mediante LCD1602 tarjeta de adaptador w / IIC / interfaz I2C la pantalla LCD, no me muestra nada en la pantalla.Si alguien es tan amable de ayudarme, llevo un par de días intentándolo, he leído los foros y paginas pero no encuentro solución.Gracias de antemano. El adaptador es este: http://www.dx.com/es/p/lcd1602-adapter-board-w-iic-i2c-interface-black-works-with-official-arduino-boards-216865#.VHweGTGG-nY

Pon tu código y el link de la librería que usas, pero de momento ya te adelanto que el "init" para ese módulo es así:

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

Hola,gracias por contestar el codigo es:

//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()
{
}

La libreria esta en la carpeta de Dropbox Dropbox - File Deleted

¿Has probado el init que te puse?

Sería cambiar el:

LiquidCrystal_I2C lcd(0x27,16,2);

por

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

Si he probado pero me da error: sketch_dec01a.ino:7:53: error: 'POSITIVE' was not declared in this scope , ya no se que hacer :'(

Prueba con la libreria de F Malpartida:

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip

Con esta, puedes usar la inicialización que te he dicho yo. Es la librería que yo uso, y va perfecta.

Jaja un socio de tus LCDs I2C jajaja

Sigue sin funcionar, gracias por la ayuda pero creo que lo mejor va a ser abandonar, a veces una retirada a tiempo es una victoria

Sabeis como puedo borrar las librerias que he instalado , borro las carpetas y me siguen saliendo....

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.

Surbyte, solo intento ayudar en lo que sé, jejeje

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.

Sigue sin funcionar, el codigo se carga, la pantalla esta encendida pero no se muestra nada. :frowning:

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
}

Tras 5 minutos esperando no me dice nada pone :

I2C Scanner Scanning...

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.

¿No tendrás otro arduino para probar?

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 :)

Me alegro de que hayas encontrado el problema. De lo que no me alegro es de que se haya confirmado que el módulo está roto.