I2C Display funktioniert nicht

Hi,
ich habe mir vor 2 Wochen ein I2C modul aus China bestellt, heute kam es an und ich wollte es gleich ausprobieren.
Allerdings bekomm ich nicht mal das HelloWorld Beispiel zum Laufen.
Ich hab mit dem I2C scanner herausgefunden, dass die Adresse 0x27 ist (Der Hersteller gab schonmal 0x20 an).
Dann dachte ich dass das der Fehler war allerdings anscheinend nicht.
Ich verwende folgende Library:
http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/
mit einem QAPASS 16x2 Display.
Das Display leuchtet mit dem I2C controller bis ich den Sketch auf den Mega lade, danach wirds einfach dunkel und es passiert nichts.

Gruß
Noah

Mal ne andere Lib probiert? Da gibt es einige.

Hier wird auf die verschiedenen Version eingegangen:
http://arduino-info.wikispaces.com/LCD-Blue-I2C
Anscheinend gehen da nicht alle Libs mit allen Displays. Hier ist die Lib dazu:
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
Die muss man dann je nach Display anders initialisieren

Was bei mir geht ist die hier:
http://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU:_TOY0046)#Sample_Code

Hallo,

die ICs PCF8574 erweitern die Eingänge und oder Ausgänge des Arduino per I2C-Bus.
Die Verdrahtung der IC-Pins zum Display ist immer wieder unterschiedlich.

Ich nutze zur Zeit diese Bibliothek:

Mit dem Datenblatt des ICs und eventuell einem Durchgangsprüfer für die Platine
ist die Parametrierung recht einfach.

Poste doch mal einen Link zu Deiner Platine.
Vielleicht habe ich einen fertigen Parameter-Satz.

Gruss
Kurti

apple877:
Ich hab mit dem I2C scanner herausgefunden, dass die Adresse 0x27 ist (Der Hersteller gab schonmal 0x20 an).

Schau auf die Rückseite des Moduls und lies die Herstellerbezeichnung und/oder die genaue Typenbezeichnung Deiner I2C-Huckepackplatine ab!

Wenn Du verrätst, welche Huckepackplatine Du einsetzt, ist eine gewisse Wahrscheinlichkeit gegeben, dass irgendjemand hier im Forum dieselbe schon mal mit einem Display und einer der halben Dutzend I2C-Liquidcrystal Libraries zum laufen bekommen hat und Dir die passende Library und den passenden init-Aufruf nennen kann.

Die Platine is von Amazon http://www.amazon.de/Seriell-Schnittstelle-Modul-Display-Arduino/dp/B00KKG85TM/ref=sr_1_8?ie=UTF8&qid=1407332404&sr=8-8&keywords=i2c+modul damals allerdings für 2,50€

Die Platine heißt HC-16

Hallo,
( mit Anrede, klingt viel besser und höflicher )

von den Platinen habe ich mehrere im Einsatz

Gruss ( ist auch nicht schlecht )
Kurti

Hi, :slight_smile:

Ja sorry tut mir leid normalerweiße mach ichs schon so :slight_smile:

Ich probier gleich mal die Lib aus die du verwendest :slight_smile:

Gruß
Noah

Moin Moin,
macht ja nichts.

Parameter, gerade nochmal ausprobiert:

#include <LCD.h>
#include <LiquidCrystal_I2C.h>  // F Malpartida's NewLiquidCrystal library
#define I2C_ADDR    0x27                           // I2C-Addresse

// Die Pin-Belegung des Displays
#define BACKLIGHT_PIN  3 
#define En_pin  2                  
#define Rw_pin  1                  
#define Rs_pin  0                  
#define D4_pin  4                 
#define D5_pin  5                 
#define D6_pin  6                 
#define D7_pin  7                  

#define  LED_OFF 0
#define  LED_ON  1

LiquidCrystal_I2C
lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

// Hintergrundbeleuchtung einschalten
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
//lcd.setBacklightPin(BACKLIGHT_PIN,NEGATIVE);
  lcd.setBacklight(LED_ON);
  lcd.backlight();       // Beleuchtung einschalten

  lcd.clear();           // Display zurücksetzen

Die Display-Beleuchtung ist mehrfach programmiert.
Musst Du mal mit spielen...

und wichtig: DENKE AN DEN KONTRASTREGLER !!

Der Jumper für die Displaybeleuchtung kann durch einen Schalter oder ein Poti / Trimmer ersetzt werden.

Gruss
Kurti

Hi,
also irgendwie mag das bei mir nicht :confused:
Ich habe die Platine so aufgesetzt, dass wenn man das Display von vorne betrachtet, die Kabel links hinter dem Display rauskommen.
Der ganz linke Pin ist doch 1? (Auf der Platine der Pin der mit einem Senkrechten Strich gekennzeichnet ist?)
Mein Display bleibt schwarz :frowning:

Gruß
Noah

Hi,
ich glaub das Poti für den Kontrast funktioniert nicht :/.
Mittlerweile leuchtet das Display also die Hintergrundbeleuchtung.
Man sieht Allerdings keine Zeichen.

Gruß
Noah

Hallo Noah,

poste mal Dein Programm.

Fotos oder Link von Deinem Display wäre(n) gut.

Gruss
Kurti

Hi,
es funktioniert jetzt. Löten muss gekonnt sein.
Ein Pin war nicht richtig angelötet, der eine War kürzer als alle anderen..

Gruß
Noah

Hi,

sorry aber jetzt habe ich nochmal eine Frage.
Ich weiß nicht ob sich hier wer mit embedXcode auskennt.
Ich habe versucht das Beispiel, welches im Arduino IDE funktioniert in embedXcode zu übertragen.
Ich habe LCD.h und LiquidCrystal_I2C.h auch in die Makefile Datei eingetragen.
Allerdings kommt bei der Zeile:

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

folgender Error:

LiquidCrytsal_I2C does not name a type

Hier ein Screenshot:

Okay mein Fehler beim include oben allerdings spuckt er jetzt das 10-Fache an Fehlern aus:

Gruß
Noah

Der Fehler kommt mir bekannt vor. Ich hatte am Anfang auch massig Probleme mein Display anzusprechen, hab drei libs ausprobiert, u. a. auch deine. Mit der, die im Arduino IDE (http://arduino.cc/en/Tutorial/LiquidCrystal) schon vorhanden ist, hat's dann aber funktioniert:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

Mein I2C ist übrigens auch einer aus China, in ebay bestellt.
Vllt. kommst du so ja weiter.

LG

Fipsi

Hi,
erstmal danke für die Antwort.
Ich habe das Display mit dem Arduino IDE schon zum laufen bekommen.
Allerdings wollte ich damit jetzt wieder in Xcode arbeiten wegen AutoCompletion und SyntaxHighlighting.
Aber embed Xcode meckert da ein bisschen rum, wie man auf den Screenshots sieht.
Ich habe die Librarys eigentlich korrekt importiert und in der makefile eingetragen.
Ich weiß nicht wie ich den Fehler beheben soll.

Gruß
Noah

Ich schätz mal, mit den Fehlern kannst du den Code auch nicht auf's Board laden, um zu sehen, ob der Fehler nur in Xcode liegt oder in deinem Code?
Wenn du das Display mit exakt den gleichen Code im Arduino IDE zum laufen gebracht hast, dann muss der Fehler in Xcode liegen.
Ich arbeite nur mit dem Arduino IDE, deswegen kann ichn beim Xcode nicht viel dazu sagen.
Falls im Arduino mit dem gleichen Code auch der Fehler kommt, dann probier nur mal meins, ob das funktioniert.

LG

Fipsi

Hallo Fipsi,

Deine Parameter sind nicht für I²C sondern für eine 4bit-Ansteuerung.
Die 4bit-Ansteuerung benötigt 7 Ausgänge am Arduino, I²C nur 2 Pins für die Datenleitung.

Gruss
Kurti

Hallo Kurti,

mit diesem Code funktioniert mein LCD-Display aber ohne Probleme über den I2C (ja, ganz sicher, ich habs nie ohne versucht, da ich dazu zu wenig Ausgänge frei hab).
Frag mich nicht warum, jedenfalls funktioniert das^^

LG

Fipsi

Hallo Fipsi,
was für ein Display hast Du ?
Wie ist es verschaltet ?

Fotos, Links und Code wären toll

Danke und Gruss
Kurti

Hi,
ja der Fehler liegt in Xcode, aber den Fehler hab sicher ich irgendwo gemacht indem ich irgendwas vergessen habe.
Ist bloß die Frage, was ich vergessen habe.

Gruß
Noah