Necesito ayuda con mi display de DFrobot I2C

Hola a todos, soy nuevo en esto y necesito un poco de ayuda, me llamo Tomás y soy de Cartagena, me compre hace tiempo un Arduino Durmilanove y ahora he comprado un display lcd I2C de 16X2, me he descargado la libreria para estos displays pero al compliar el ejemplo para comprobar que funciona la pantalla, me sale un error en mi sketch :

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

LiquidCrystal_I2C lcd(0x27); // Set the LCD I2C address

#define BACKLIGHT_PIN 13

void setup()
{
// Switch on the backlight
pinMode ( BACKLIGHT_PIN, OUTPUT );
digitalWrite ( BACKLIGHT_PIN, HIGH );

lcd.begin(16,2); // initialize the lcd

lcd.home (); // go home
lcd.print("Hello, ARDUINO ");
lcd.setCursor ( 0, 1 ); // go to the next line
lcd.print (" WORLD! ");
}

void loop()
{

}

Error

No matching function for call to 'LiquidCrystal_I2C::LiquidCrystal_I2C(int)'

In file included from sketch_apr03a.cpp:2:
E:\ARDUINO\arduino-1.0\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:81: error: conflicting return type specified for 'virtual void LiquidCrystal_I2C::write(uint8_t)'
E:\ARDUINO\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
sketch_apr03a:3: error: no matching function for call to 'LiquidCrystal_I2C::LiquidCrystal_I2C(int)'
E:\ARDUINO\arduino-1.0\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57: note: candidates are: LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)
E:\ARDUINO\arduino-1.0\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:55: note: LiquidCrystal_I2C::LiquidCrystal_I2C(const LiquidCrystal_I2C&)

Muchas gracias a todos, saludos desde Cartagena.

Mira que librerias tienes instaladas. En principio si te descargas la nueva libreria LiquidCrystal deberia funcionarte bien. La ultima version disponible es la 1.2.0 y esta a punto de salir la versión 1.2.1.

Si usas la New LiquidCrystal library de: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Usa alguno de los ejemplos que vienen. En el IDE simplemente abre el menu Files->examples->LiquidCrystal y abre el de I2C.

El problema que estas viendo es que no has instalado bien la librería. Tienes que copiarla en libraries, el contenido del fichero zip, deberías ponerlo en el directorio de la librería LiquidCrystal. Guarda el contenido original en otro sitio.

Una vez hayas copiado la librería cierra el IDE Arduino y vuelvolo a abrir. Si no lo haces, no te reconocerá la librería.

Qué versión estas usando de la libreria?

Qué LCD I2C estas usando? Si no usas el PCF8574 es posible que no te funcione esta librería. Lo digo porque no reconozco la dirección 0x27.

Hola Fm si en la parte trasera del display lleva el PCF 8574 y las especificaciones del display que me da el fabricante es

Specification

I2C Address: 0x27

Backlight (White character on Blue background)

Supply voltage: 5V

Size: 82x35x18 mm

Come with IIC interface, which can be connected by DuPont Line

1 X IIC/I2C/TWI 1602 Serial LCD Module

Que libreria estas usando?

Pues he usado la que viene en esta página y tambien la que me has dado tu.

he vuelto a probar con tu libreria y ya no me da error de compilacion, una cosa veo en unos lugares que conectan el display en rx y tx y en otro en el pin 4 y 5 de analog in, realmente donde se conectan

El problema de la placa de DFRobot es que si no viene el esquematico no te voy a poder ayudar a configurar la libreria New LiquidCrystal.

El problema que tiene la libreria de DFRobot es que es una castaña y no funciona con el IDE 1.0. Como la placa no es open source HW, pues... La verdad es que nunca me han gustado los de DFRobot ya que usan proyectos open source para hacerlos complemente comerciales sin dar soporte a sus productos y esperan que alguien les resuelva la papeleta.

Buena suerte.

Lo tienes que conectar en el I2C no en la UART. Conexión SDA, SCL

Por cierto si y precaución a todos los usuarios que compreis un driver similar a este de DFRobot. El diseño eléctrico es una patata, si activais el backlight con el backpack, se activara el transistor que controla el backlight y pondra el pin de control en corto con tierra. Resultado, con suerte simplemente consumira un huevo, con mala suerte, quemareis el i2c extender, un diodo o una resistencia arreglaría el problema.

El que has puesto en la foto no parece tener ese problema.

cambia el titulo del post a algo mas indicativo de lo que contiene. la mayoría de los post son pidiendo ayuda y si todos pusiésemos "necesito ayuda" el foro seria un caos.

yo tengo un lcd de drobot, y lo modifique para que funcione con el IDE 1.0, a ver si mañana lo subo.

@sergegsx - ten cuidado con el backpack si tiene control del backlight.

Yo tengo funcionando una pantalla = a esa y 0 problemas, si que no estoy usando la ultima version del IDE porque no soportaba la libreria y no encontre ninguna que funcionara, asi esque uso la version anterior y de momento bien.

Hola Tiozes, como lo tienes conectado al arduino, tengo la libreria de DFrobot y ya me compila bien y me lo pasa al arduino, pero no me hace nada el display la fila uno se me queda toda encendida los cuadritos

tomyct:
Hola Tiozes, como lo tienes conectado al arduino, tengo la libreria de DFrobot y ya me compila bien y me lo pasa al arduino, pero no me hace nada el display la fila uno se me queda toda encendida los cuadritos

Buenas, pues el terminal de la pantalla SDA al pin 4 de las entradas analogicas del Arduino y SCL al pin 5 de las entradas analogicas del arduino y ya con la libreria funciona, metiendole la alimentacion al LCD claro esta.

Saludos

Buenos dias Tiozes, pues hago lo siguiente le conecto la alimentación y nada mas conectarla se enciende toda la primera línea todos los cuadritos conecto los pines de datos al pin 4 y 5, compilo y paso el programa al arduino sin ningun problema pero el display se queda como estaba no se inmuta.

Pon el programa que le pasas.

Yo lo tengo todo conectado asi y me va bien, pero lo conecto todo y despues le doy alimentacion al arduino.

Pero vamos sin meterle programa ami nunca me mostró nada en el LCD solo se enciende la iluminacion del LCD y ya esta.

Buenas...

Que tal es un backpack con el pcf8574, he encontrado siguiente link y me parece abordable (diy), la idea seria emplear uno o dos lcds con este y un key pad...

Un saludo.

inigohe

La verdad es que funcionan muy bien, yo tengo uno (disclaimer - es un producto que distribuyo) que funciona muy bien. Es más, con mi librería "New LiquidCrystal" es unas 3 veces más rápida que con la "LiquidCrystal_I2C".

Y lo mejor de todo - Made in Spain :wink:

Si estáis interesados: electroFUN LTD: I2C LCD extra IO

La librería está accesible desde la página en la sección de descargas.

Buenas...

He visto que si se quiere ampliar, es necesario colocar resistencias entre 5 v y sda y sdcl... o me equivoco, pero seria posible incluirlas en el backpack...

Y otra pregunta hay que hacerlo por cada backpack o solo seria necesario en el primero???

Disculpa por asaetearte de esta manera.

Gracias por las respuestas.

inigohe

No, las resistencias, en el caso del mío son para el I2C, de hecho el de DFRobot no lo mencionan por ningún lado y es una fuente de errores impresionante, lo mismo que el que has puesto en el enlace anterior.

En el caso del mío, se pueden conectar hasta 8 LCDs si se quiere, lo único que hay que hacer es reconfigurar los jumpers que tiene en la parte trasera (y accesibles cuando está montado el LCD) para que cada dispositivo I2C tenga una dirección diferente.

La resistencia de pull-up externa de 10K en SDA y SCL solo hay que poner una en cada pin en todo el bus I2C.

Con respecto a la dirección de cada dispositivo, ésta hay que programarla en cada LCD. Como comentaba, son unos jumpers que se sueldan para que cada dispositivo en el bus tenga una dirección diferente. Por defecto lo tengo configurado para que todos estén en la dirección 0x38. El rango completo es: 0x38, 0x39 ... 0x3F. Lo puedes ver en: electroFUN LTD: I2C LCD extra IO

Si en una aplicación quieres tener varios LCDs conectados, con mi librería "New LiquidCrystal" tendrías que crear varios objetos (variables) LiquidCrystal_I2C con las direcciones correspondientes a cada LCD.

En breve tendré un controlador de LCDs con 3 hilos que es 5.5 veces más rápido que usando la librería estándar LiquidCrystal.