Solved - Uno to 20,4 LCD via I2C "missing something simple" LOL Please help

Hello

I have a new UNO board
I done a bunch of examples and playing around. I to setup my I2C chip (pic18f23k22-I/SO data sheet is here http://www.web4robot.com/files/SerialLCDCtrN.pdf ), to the Ardiuno using UNObit 4 as SDA and UNO bit 5 as SDL. I am pulling power from the UNO 5v and ground. My LCD is connected to the IC2 chip (pic18f23k22).
I am trying to do a simple HEllO WORLD, WIthout a lot of luck. This is a brand new 20x4 LCD screen that works perfect in parallel output from uno. I have tried at least 4 different lib’s and none of them seem to be working. Also from what I read in the spec my default I2C address is 76 (0x4C).
Here is the code I am using and it compiles and down loads fine, however the screen is dark but I can see some squares. I had this same problem when setup as parallel mode on UNO and fixed it buy getting the Backlight display to come on. However no such luck with I2C. The Phillips compliant I2C chip I have is suppose to be able to software control the Backlight. And both the codes I use call for it to be turned on. I must be missing something simple.
Does anyone have any sample code for this chip?

//DFRobot.com
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
//int ADDR = 0x4C;
LiquidCrystal_I2C lcd(0x4c,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}

I also tried this code also with no errors and like the other the backlight does not come on but I can see faint full black squares. This whole problem might just be backlight. then again it could just be something I am not addressing correctly.

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
//LiquidCrystal_I2C lcd(0x4C,20,4); //test

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}

Any help or pointers in the right direction would be great, I have spent alot time on this already :frowning:

Thanks
Brian

Ok I solved it… LOL
here is the code that made it work with the lib file LCDI2Cw at web4robot.com. I also had another issue. it seems the computer IDE cable I was using didnt pass enough current thru the small wires, I used a bigger one with thicker wires and that helped to see the screen. Backlight and contrast is working.

/*
  LCDI2Cw Library - Hello World
 
 Demonstrates the use a 16x2 LCD display.  
 This sketch prints "Hello World!" to the LCD
 and shows the time.
 
  The circuit:
 * LCD SDA to Arduino A4 pin 
 * LCD SCL to Arduino A5 pin
 * LCD Vdd to Arduino +5V
 * LCD GND to Arduino GND
 */
 
// include the library code:
#include <LCDI2Cw.h>
#include <Wire.h>

unsigned char i2cAddress = 0x4C;  // LCD module I2C address

// initialize the library with the number of columns and rows
LCDI2Cw lcd(20, 4, i2cAddress);

void setup() {
  // LCD begin 
  lcd.begin();
  lcd.backlight(255);
  lcd.contrast(75);
  // Print a message to the LCD.
  lcd.print("hello, world!");
  
}

void loop() {
  // set the cursor to line 1, column 0
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}