En principio, no hace falta que borres la librería "LiquidCrystal" original, ya que tu tienes que usar la "LiquidCrystal_I2C". Agrega la librería a la carpeta de librerías de usuario, dentro de user/documentos/arduino/libraries.
Yo la metería dentro de una carpeta que se llame "LiquidCrystal_I2C", de forma que así se diferencia totalmente de la "LiquidCrystal" original.
En principio, no hace falta que borres la librería "LiquidCrystal" original, ya que tu tienes que usar la "LiquidCrystal_I2C". Agrega la librería a la carpeta de librerías de usuario, dentro de user/documentos/arduino/libraries.
No se si hice bien, pero he agregado la librería directamente:
sketch- Importar libría - Add Library.
Quizas este no sea el mejor método para añadirlas. Aparecer, aparece en el listado de librerías en el arduino.
¿Cual descargo de las 4?
He descargado la primera "Download repository" y al añadirla me dice esto:
"La lirería "fmalpartida-new-liquidcrystal-4ab8294150b5" no puede ser utilizada. Los nombres deben contener letras básicas y números (Solo ASCII sin espacios y no puede empezar con un número""
Por una parte me parece normal.
He abierto el archivo ZIP descargado y tiene un mogollón de archivos
No descargue esta librería, mas que nada porque no habia ingresado en el foro.
En su vez he descargado esta:
Abri una carpeta nueva. La llame LiquidCrystal_I2C y descomprimi en ella los archivos LiquidCrystal_I2C
Hasta ahora funciona perfectamente.
Me parece curioso que no me hace falta ponerle nada de POSITIVO, o NEGATIVO.
Con este código funciona perfectamente:
#include <Wire.h> #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,20,4); // set the LCD address to 0x20 for a 20 chars and 4 line display
void setup()
{
lcd.init(); // inicializa el lcd
// Print a message to the LCD.
lcd.backlight(); //Enciende la luz del LCD
lcd.setCursor(3,0);
lcd.print("Hola, MUNDO");
delay(1000);
lcd.setCursor(3,2);
lcd.print("Como estas?");
delay(1000);
Yo lo he hecho de la siguiente manera, para probar:
He descargado el archivo que dice maxid, he descomprimido la carpeta que se llama LiquidCrystal, y la he renombrado como LiquidCrystal_I2C
Solamente descomprimo esa carpeta, ya que la otra que se llama _MACOSX, entiendo que es para Mac, y yo uso un PC.
Después, muevo la carpeta a: C:\Users\nombreusuario\Documents\Arduino\libraries
Cambia nombreusuario por el usuario que tengas en tu pc.
Y ya está. Yo uso la vesión 1.5.7 del IDE de arduino, y al abrir el menu file/examples, me aparecen primero los ejemplos que lleva el IDE, luego, separado por una linea horizontal, los ejemplos de las librerías que lleva el IDE, y más abajo, también separado por una linea horizontal, los ejemplos de las librerías de usuario. Allí, te vas a LiquidCrystal_I2C, y puedes probar con el ejemplo HelloWorld_i2c, verás que solamente usa 2 librerías, no todas las que te añade el menú sketch/add library.
Creo que dentro de la misma carpeta de la librería, hay más librerías de LCD para diferentes medios de comunicación, no solamente el i2c, por eso es mejor ver los ejemplos específicos.
Por cierto, ¿dónde has comprado el LCD I2C? Estoy en medio de un proyecto que incluye pantalla, y el LCD normal me da problemas, y las TFT, es un lío bestial meter números, ya que hay que convertirlos antes a tipo string, de forma que ya voy descartando TFT o displays gráficas, ya que me ocupan demasiado tiempo en escribir en la pantalla.
Creo que el I2C, por su simplicidad me podría servir, ya que necesito que el código corra fluido, porque se hacen lecturas continuas por el puerto serie a mucha velocidad, y retrasos en el código, creo que me hacen para las lecturas de puerta serie.
carmeloco:
Por cierto, ¿dónde has comprado el LCD I2C? Estoy en medio de un proyecto que incluye pantalla, y el LCD normal me da problemas, y las TFT, es un lío bestial meter números, ya que hay que convertirlos antes a tipo string, de forma que ya voy descartando TFT o displays gráficas, ya que me ocupan demasiado tiempo en escribir en la pantalla.
El protocolo i2c tiene una direccion a quien va el dato enviado, el dispositivo que tenga la direccion 0x20 es el que responde con ack que le llegó el dato.
Puedes tener 2 display iguales uno con direccion 0x20 y otro con 0x21 y le envias datos diferentes para graficar.
Las resistencias de pull-up son porque es salida de colector abierto http://www.tutoelectro.com/resistencias-pullup-pulldown-y-salidas-en-colector-abierto/ por lo que no tiene tension de polarizacion para el bit alto.
El valor generalmente es de 4700ohms para la mayoria de los casos.
Pero tambien depende de la velocidad que trabaje el bus esta puede ser mayor o menor valor.
mas facil, con un tester mide si hay continuidad, entre sda y una de las resistencias que dice 472 y scl y la otra resistencia. Y el otro extremo de la resistencia debe ir a +5vcc