LCD LCM015 mit I2C Bus bekomme ich nicht zum laufe

Hallo,
ich habe mir ein LCM015 Displaygeholt. Das Display ist mit einem PCF8574 I2C Kontroler ausgestattet und mit einem 2 x 10 HD44780.

#include <Wire.h>
#include <LCDI2C4Bit.h>

int ADDR = 0x21;

byte x = 0;
byte data = 1;
byte c;



void setup(){
  Wire.begin();
}

void loop(){
Wire.beginTransmission(39);
  Wire.send(B00000000);
  delay(15);
  // init  
  Wire.send(B00000011); // X E RW RS D7 D6 D5 D4
  delay(5);
  Wire.send(B01000011);
  delay(5);
  Wire.send(B00000011);
  delay(5);
  Wire.send(B01000011);
  delay(5);
  Wire.send(B00000011);
  delay(5);
  Wire.send(B01000011);
  delay(5);
  Wire.send(B00000011);
  delay(5);
  Wire.send(B00000010);
  delay(5);
  Wire.send(B01000010);
  delay(5);
  Wire.send(B00000010);
  delay(5);

  Wire.send(B00000010);
  delay(5);
  Wire.send(B01000010);
  delay(5);
  Wire.send(B00000010);
  delay(5);
  Wire.send(B00001100);
  delay(5);
  Wire.send(B01001100);
  delay(5);
  Wire.send(B00001100);
  delay(5);
  Wire.send(B00000000);
  delay(5);
  Wire.send(B01000000);
  delay(5);
  Wire.send(B00000000);
  delay(5);
  Wire.send(B00001000);
  delay(5);
  Wire.send(B01001000);
  delay(5);
  Wire.send(B00001000);
  delay(5);
  Wire.send(B00000000);
  delay(5);
  Wire.send(B01000000);
  delay(5);
  Wire.send(B00000000);
  delay(5);
  Wire.send(B00000001);
  delay(5);
  Wire.send(B01000001);
  delay(5);
  Wire.send(B00000001);
  delay(5);

Wire.endTransmission();
}

Das ist ein Beispielcode, den mit dem Display erhalten habe. Damit
wird das Display resetet. Aber mit keiner der LCD I2C Libs bekomme ich das Display Initialisier, geschweige den ein Zeichen angezeigt.

#include <Wire.h>
#include <LCDI2C4Bit.h>

int ADDR = 0x27;  //0xA7

LCDI2C4Bit lcd = LCDI2C4Bit(ADDR,2,10);

void setup()
{
   Serial.begin(9600);
   Wire.begin();
   lcd.init();
   lcd.cursorTo(0,0);
   lcd.printIn("A");
   delay(500);
   lcd.cursorTo(0,8);
   lcd.printIn("B");
   delay(500);
   lcd.cursorTo(2,8);
   lcd.printIn("C");
   delay(500);
   lcd.cursorTo(2,16);
   lcd.printIn("D");
   delay(1500);
}


void loop(){
     lcd.cursorTo(0,0);
   lcd.printIn("Hallo");

Die Adresse habe ich von 8Bit nach hex umgerechet.

Ich komme nicht weiter. Hat jemand einen Tip ?

Gruss Stefan

Versuche die I2C Schnittstelle zu scannen so findest Du die Adresse.
http://todbot.com/blog/2009/11/29/i2cscanner-pde-arduino-as-i2c-bus-scanner/
Grüße Uwe

Vielleicht ist dies hier hilfreich:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235340473/20#20

Hi und danke für die Tips.

Der Portscanner zeigt mit Adresse 39. Hatte ich ja schon Probiert und bringt leider auch nichts und der andere Tip hat mich leider auich nicht weiter gebracht.

Schein ein Problem mit dem Display zu sein. Ich hatte einen anderen Threat gefunden, der auch keine Lösung hervorgebracht hatte.

Ich bau das jetzt nochmal mit einem Display und einem PCF8574 auf und hoffe das dann Läuft.

Danke

Hallo redtop-arduino
Bei Deinem 2. sketch fällt mir auf: Nach "lcd.init();" brauchst Du eine Pause da das Display für die Initialisation etwas Zeit braucht und in dieser Zeit keine weiteren Befehle entgegennimmt.
Grüße Uwe

So ich habe mir eine anderes Display geholt und damit läuft es ohne Probleme. ich vermute das der erste sketch den ich eingestellt habe, die Initialiesierung ist, müsste ich mal testen.

Danke für die Hilfr

Stefan

Das gleiche Modell des Displays oder ein anderes Modell?
Grüße Uwe

Ich hab eine hd4478 vom und einen PCF8574 genommen.

Gruss Stefan

Da ich leider ein 16x4 Display genommen habe, habe ich das Problem das der Offset für die dritte und vierte Zeile nicht stimmt ?

Hat jemand ein Tip ?

Gruss Stefan

Nachdem ich die Register in Lib geändert hab funktioniert es :slight_smile: