Hi the other thing that you can do is to give the LCD library (New LiquidCrystal library) here a shot. It looks like it is not initializing the LCD correctly:
#include <LiquidCrystal_I2C.h>
// LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
// uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 );
myLCD LiquidCrystal_I2C ( 0x20, 4, 5, 6, 0, 1, 2, 3 );
void setup()
{
lcd.begin( 16,2 ); // initialize the lcd
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print("ARDUINO+PCF8574P");
lcd.setCursor(0,1);
lcd.print("+HD44780=I2C-LCD");
}
void loop()
{
}
or, with backlight control
// Constructor with backlight control
// LiquidCrystal_I2C(uint8_t lcd_Addr, uint8_t En, uint8_t Rw, uint8_t Rs,
// uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7,
// uint8_t backlighPin, t_backlighPol pol);
myLCD LiquidCrystal_I2C ( 0x20, 4, 5, 6, 0, 1, 2, 3, 7, POSITIVE );
void setup()
{
lcd.begin( 16,2 ); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("ARDUINO+PCF8574P");
lcd.setCursor(0,1);
lcd.print("+HD44780=I2C-LCD");
}
void loop()
{
}
That transistor looks a bit fishy too.
If you have the PCF8574 use Address 0x20 if you have the PCF8574A use I2C addres 0x38.