I2C LCD

Got my hands on a I2C device with a PDF datasheet. Chip should work with LCD’s.

But, it won’t work…

Datasheet: http://www.maxgrim.nl/BV4208.pdf

Standard adres is 0x42, and at the end you have to give a stop command, which is 0x42 + 1 = 0x43.

So what I tried was:

#include <Wire.h>

void setup()
{
  Wire.begin(); // join i2c bus (address optional for master)
}

byte x = 0;

void loop()
{
Wire.beginTransmission(0x42);
Wire.send(3);
Wire.send(0);
Wire.beginTransmission(0x43);
Wire.endTransmission();
delay(400000);
}

This command should turn the backlight on.
<3><1 or 0> << datasheet

Can anybody help me? Did already research, but this is my first experiene with I2C :-[

Can you show us your schematic? Can you show us which LCD you are using and how you have it hooked up to this chip? Have you tried sending a 1 instead of a 0 (I know the datasheet says inverse logic; but maybe the backlight on the LCD also relies on inverse logic, so you need the equivalent of a double negative to get it to turn on? Its all a guess to me, though, without having a schematic and info on the LCD).

How did you come by this device - did you purchase it, or did you find it on the side of the road (it happens)? I know I have found plenty of chips in junk bins that were in those bins for a reason…

:wink:

Bought it from eBay, but the guy sells plenty of I2C devices, and did send it neatly in combination with a CD on which was the datasheet. So I think its a decent product. The shop made the datasheet themselves. I mailed them but they havent reacted yet.

What I think is that something is wrong with my code. I hooked op a same LCD as in the datasheet, a HD47780. Also used the wiring scheme of the datasheet.

Did I used the code properly, because thats the only thing that I think is wrong. When I send another command than blacklight it doesn't work either....

Got it figured out :slight_smile: You had to divide the start adress by two, for a 7 bit conversion, or what so ever? Also the arduino automatically sended the end bit, because I didn’t had to send that one…

Anyway, the code:

#include <Wire.h>

void setup()
{
  Wire.begin(); // join i2c bus (address optional for master)
}

byte x = 0;

void loop()
{
  Wire.beginTransmission(0x21);  // join I2C, talk to BV4206 by Addr 31 (7bit) = 62 BV addr (default).
  Wire.send(0x03);   //blacklight adress
  Wire.send(0x00);   //on
  Wire.endTransmission(); 
}