i2c - LCD-Display 20x4

Hallo,
ich versuche gerade mein i2c - LCD - Display wieder in Betrieb zu nehmen.
Hierfür habe ich einen Sketch, der vor langer Zeit schon mal funktioniert hat in meinen UNO hochgeladen. In der Anzeige wurden nur einzelne Buchstaben angezeigt.
Um Codefehler auszuschließen habe ich den “Hello World” Sketch aus der Librarie getestet, mit dem selben Ergebnis.
Mittlerweile habe ich das Ganze an 2 Displays, an einem Uno, an einem Leonardo und an einem Micro versucht. Immer das gleiche Ergebnis.
Es werden immer nur die ersten Buchstaben einer Zeile angezeigt.
Diese werden an der richtigen Position angezeigt.

Hatte schon mal jemand das gleiche Problem?

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,20,4);  // set the LCD address to 0x3F for a 20 chars and 4 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
  lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
  lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}

Wenn ich den Code wie folgt abändere, bekomme ich das Wort "Hello" angezeigt.
Aber das kann ja nicht die Lösung sein.

 // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("H");
  lcd.setCursor(4,0);
  lcd.print("e");
  lcd.setCursor(5,0);
  lcd.print("l");
  lcd.setCursor(6,0);
  lcd.print("l");
  lcd.setCursor(7,0);
  lcd.print("o");

Schönen Gruß
Stefan

Wenn das Programm schon mal funktioniert hat, dann kann es eigentlich nur noch am Anschluß des Moduls liegen.

Allerdings wurden schon Probleme mit neueren IDE/Compiler Versionen gemeldet, mit denen alte Bibliotheken plötzlich nicht mehr funktionieren. Weißt Du noch, mit welcher Version das Programm noch funktioniert hat, und kannst Du die nochmal installieren und damit testen?

Das Problem hatten wir vor längerer Zeit schon einmal.

Da war es meiner Erinnerung nach ein Problem der Library.
Teste mal eine andere I2C-LCD-Library.

z.B. diese https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Bei jeder Umstellung auf einen neuen Compiler, mit neuen Bibliotheken, können sich Fehler in die Standard-Bibliotheken einschleichen, oder bislang unentdeckte (wegoptimierte) Fehler in den anderen Bibliotheken zuschlagen. Die Entwickler der Bibliotheken bekommen das oft garnicht mit, weil ihr Code ja vorher funktioniert hat. Wenn man feststellen kann, wo der Fehler liegt, kann/sollte man die Entwickler darauf aufmerksam machen, damit sie Abhilfe schaffen können.

Es gibt mehrere I2C LCD Libraries. Einfach mal eine andere probieren

Vielen Dank für die schnellen Antworten.

Ich hab's nun mit verschiedenen IDe's und mit der NewLiquidCrystal Librarie probiert, leider ohne Erfolg.

Wobei das aber auch an meiner unkoordinierten Vorgehensweise liegen kann :confused: . Ich muss das alles erst mal ausprobieren und melde mich dann wieder.

StefanS:
Vielen Dank für die schnellen Antworten.

Ich hab's nun mit verschiedenen IDe's und mit der NewLiquidCrystal Librarie probiert, leider ohne Erfolg.

Wobei das aber auch an meiner unkoordinierten Vorgehensweise liegen kann :confused: . Ich muss das alles erst mal ausprobieren und melde mich dann wieder.

Nimm doch einfach aus einer Library ein Beispiel zum Testen.

Eine korrekte Verdrahtung vorrausgesetzt, funktionieren die Beispiel.
Auch werden die Displays je nach Library unterschiedlich initialisiert und angesteuert.

Normalerweise ist das Problemlos.

Und du musst bei I2C auch Pullup-Widerstände an den I2C Leitungen einsetzen.
4,7 k gegen +5 Volt.

Das Problem hatte ich auch. Mit einem Uno, Mega, 1602 und 2004. Ich hab eine frühere IDE Version benutzt, seitdem geht es. Glaube die 1.6.4 war es.

Gruß

Ich habe es mal getestet - mit dem Ergebnis, dass genau das ausgegeben wird was wohl geplant war. Mal abgesehen von 2x lcd.Init() im Setup läuft alles optimal. Meine Umgebung: UNO R3, IDE 1.6.9, Bibliothek = irgend eine ältere Version von vor etwa 1…2 Jahren oder so. Vermutlich tatsächlich ein Verdrahtungsfehler?!

(Erinnert mich an einen eigenen Bock im Februar d.J., als mir ein winziger Metallkrümel die Ausgabe ebenfalls vermiest hatte)

LiquidCrystal.jpg

Nun funktioniert es.
Nachdem mit älteren IDEs gar nichts mehr ging, hat mir dort aber eine Fehlermeldung die Richtung gezeigt.

Mein Fehler war wohl, dass ich neue Libraries immer nur dazu installiert habe ohne die alten zu löschen.

Nun habe ich folgenden Zustand IDE 1.6.10, und diese Library: LiquidCrystal_I2C-master → https://github.com/marcoschwartz/LiquidCrystal_I2C/archive/master.zip

Vielen Dank für die Unterstützung, ohne die ich wohl immer noch am rumeiern wäre.

StefanS:
Vielen Dank für die Unterstützung, ohne die ich wohl immer noch am rumeiern wäre.

Na bitte.
Zu irgend etwas müssen wir doch auch gut sein. :wink: :wink:

Und Fehlermeldungen sollte man nie ignorieren.

Leider ist das ein Standard-Problem speziell und in Häufung bei den LCD libraries, die dummerweise sehr oft exakt gleich heißen und wenn du da nicht tabula rasa machst und konsequent die alten libs löschst, dann weiß der Compiler nicht, welche library er denn einbinden soll.

Nach Murphy's Gesetzen nimmt er zielgerichtet aber immer die falsche.

Noch ein Hinweis:
Du arbeitest mit 1.6.10.

Verfolge mal im englischsprachigen Forum die Diskussion um die neue 1.6.11, die angeblich die wohl bug-verseuchte 1.6.10 plus zugehörige board-Definitionen ablösen soll.

Ich bin auf 1.6.9 und die scheint sehr stabil zu sein; jedenfalls bislang keinerlei Probleme mit "meinen" libraries und sketches gehabt.

AFAIR kann man im Library Manager die Version auswählen, die verwendet werden soll. Kai Neahnung ob das hilft.

rpt007:
Noch ein Hinweis:
Du arbeitest mit 1.6.10.

Verfolge mal im englischsprachigen Forum die Diskussion um die neue 1.6.11, die angeblich die wohl bug-verseuchte 1.6.10 plus zugehörige board-Definitionen ablösen soll.

Ich bin auf 1.6.9 und die scheint sehr stabil zu sein; jedenfalls bislang keinerlei Probleme mit "meinen" libraries und sketches gehabt.

Danke für den Tipp, ich werd' dann wohl erst einmal mit der 1.6.9 weiter machen.
Mir als Anfänger war nicht bewusst, dass es solche Probleme mit den IDEs gibt.

Deswegen lasse ich bei mir die IDE solange drauf wie es geht.

und dann installiere ich die neue parallel, dann kann man immer schnell in älteren Versionen testen