i2c display - I must be missing something.

I have run through the entire set of steps here:

http://forum.arduino.cc/index.php?topic=128635.0

I am able to run the basic example "hello world" sketch on my Sainsmart 20X4 lcd

When I connect the 16X2 from banggood and adjust the address, I see nothing on the display. I have tried 2 displays and get the same results with both.

Any ideas?

It will definitely be helpful to see the code you're running.

Assuming your wiring is ok, it might be the way you're initialising the display.

I have a template sketch for my generic ebay i2c backpack + 16x2 display that I use every time and it works so will post the code this evening for comparison.

This is what I am using.

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

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
	// initialize the LCD
	lcd.begin();

	// Turn on the blacklight and print a message.
	lcd.backlight();
	lcd.print("Hello, world!");
}

void loop()
{
	// Do nothing here...
}

How about that wiring and lcd model?

VCC and ground to 5V and ground, SDA to A4 and SCL to A5.

This is the unit
IIC / I2C 1602 Blue Backlight LCD Display Module For Arduino

This is what works for me:

(exactly the same lcd and backpack btw)

Also, make sure to adjust the pot on the back for optimum contrast based on your supply vcc

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

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

void setup() {

  lcd.begin (16,2); // for 16 x 2 LCD module
  lcd.setBacklightPin(3,POSITIVE);
  lcd.setBacklight(HIGH);
}

void loop() {
  lcd.setCursor(0,0);
  lcd.print("yo");
}

Any time I try a sketch with:
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
or similar, I get the error:

"no matching function for call 'LiquidCrystal_IC2:: LiquidCrystal_I2C(int,int,int,int,int,int,int,int)'

I must have an outdated library. Do you have a link to the one you are using?

You are missing the Wire.begin() on the setup loop

Try this

LiquidCrystal_I2C	lcd(0x27,16,2) // Address , 16 characters and two rows.

This line is from the .cpp file. LiquidCrystal_I2C is expecting 3 arguments address, characters and columns

LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows)

What are the other numbers you are declaring ?

You are getting errors because the the object is not expecting all those arguments being passed

donek:
Any time I try a sketch with:
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);
or similar, I get the error:

"no matching function for call 'LiquidCrystal_IC2:: LiquidCrystal_I2C(int,int,int,int,int,int,int,int)'

I must have an outdated library. Do you have a link to the one you are using?

I'm not sure what version it is, but could be that mine's the outdated one!
Also not sure what the other arguments are.
I've zipped and uploaded the library im using

It would be better if you try the 3 arguments first that JSinAZ is describing, then try my lib.

Also in all the example provided by the library i see lcd.init(); being used not lcd.begin();

JSinAZ:
You are missing the Wire.begin() on the setup loop

Try this

LiquidCrystal_I2C lcd(0x27,16,2) // Address , 16 characters and two rows.

This line is from the .cpp file. LiquidCrystal_I2C is expecting 3 arguments address, characters and columns

LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows)

What are the other numbers you are declaring ?

You are getting errors because the the object is not expecting all those arguments being passed

This is the exact code I am using. Adding the wire.begin has no effect.

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

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
// initialize the LCD
lcd.begin();

// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
// Do nothing here...
}

I have turned the contrast pot and now see the blocks for each character. When I upload the following coded there are little flashing pixels in the middle character block. It is obviously sending something, but it's not quite right.

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

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
	// initialize the LCD
	lcd.begin();
      Wire.begin();

	// Turn on the blacklight and print a message.
	lcd.backlight();
	lcd.print("Hello, world!");
}

void loop()
{
	lcd.print("Hello, world!");
}

forget it. cycling the power to my nano and some more adjustments to the contrast pot did the trick.

Good job!