Auf meinem Uno möchte ich auf dem Display 1602A mit I2C einen Text ausgeben.
Das Display ist angeschlossen, die Bibliothek installiert und funktioniert soweit.
Der Cursor wird positioniert, der Text wird übergeben, aber es wird nach der Positionierung nur der erste Buchstabe ausgegeben.
Den zweiten Buchstaben bekomme ich nur nach neuer Positionierung mit neuer Printanweisung.
Ich habe leider keine Beschreibung zu der Bibliothek und kenne die Argumente und die Syntax dazu nicht.
Frohe Ostern Hans
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); //Im Setup wird der LCD gestartet
lcd.backlight(); //Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus).
String Text = "Hallo Display";
}
void loop() {
delay(2500);
lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile.
// lcd.print
lcd.print ("Hallo Welt ");
lcd.setCursor(1, 0);
lcd.print("a");
lcd.setCursor(0, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print("Guten Morgen!");
lcd.setCursor(1, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print("u");
delay(2500);
lcd.setCursor(0, 0);
lcd.print("Sonnenschein ");
lcd.setCursor(1, 0);
lcd.print("o ");
lcd.setCursor(0, 1);
lcd.print("Kein Regen! ");
lcd.setCursor(1, 1);
lcd.print("e ");
}
Danke für die Tipps.
Der Text zu lang kann nicht die Ursache sein.
Ich habe den Beispiel-Sketch vom Autor genommen, und da auch den Text gekürzt. Leider ohne Erfolg.
Mein nächster Test wäre mit einem Arduino Mega gewesen, und danach das gleiche Display auszuleihen.
Jetzt versuche ich mal deine Library. bekommt Die auch das Signal auf AnalLog In A4 und A5
Das lässt sich nachlesen, indem Du in das Lib-Verzeichnis gehst und Dir dort die Keywords.txt und die sourcedatei endend auf .cpp ansiehst.
Die Funktionen sind in der Regel gut dokumentiert.
Im Normalfall gibt es auch zu jeder lib wenigstens ein Beispielcode.
Den erstmal ausführen und sehen, ob der so läuft, wie er soll.
Dann darauf aufbauen.
Ich verstehe nur Dein Problem noch nicht.
Heisst das:
Ja, von jedem String wird nur das erste Zeichen ausgegeben. Mit einer neuen Cursor-Anweisung und neuem Printbefehl kann ich wieder ein Zeichen ausgeben. Die Anzeige nimmt also nur einzelne Buchstaben an.
Habe gerade die Arduino IDE gelöscht und neu installiert, weil ich die alte Library nicht gefunden habe.
Hans
Das lese ich gerne, nur muss ich wissen, dass es diese Erklärung gibt. Bisher habe ich nur die schon vorhandenen Biliotheken gebraucht.
Die neue Lib ist jetzt auch schon installiert, und das Programm bringt immer noch nur das erste Zeichen vom String.
Leider.
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
void setup() {
lcd.init(); //Im Setup wird der LCD gestartet
lcd.backlight(); //Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus).
}
void loop() {
delay(2500);
lcd.setCursor(0, 0);//Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile.
lcd.print ("Horst");
delay(1500);
lcd.setCursor(1, 0);
lcd.print("Paul");
lcd.setCursor(0, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print("Anna!");
delay(1500);
lcd.setCursor(1, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile.
lcd.print("Ulrike");
delay(2500);
lcd.setCursor(0, 0);
lcd.print("Sabine");
delay(1500);
lcd.setCursor(1, 0);
lcd.print("Fritz");
lcd.setCursor(0, 1);
lcd.print("Klaus!");
delay(1500);
lcd.setCursor(1, 1);
lcd.print("Peter");
}
Diese Lib und die Beispieldatei habe ich gestern schon geladen und getestet.
Außer, dass die ersten Zeichen damit nicht am Zeilenanfang ausgegeben werden, habe ich keine Verbesserung gemerkt, auch heute nicht.
Die lcd 20,4 habe ich so versucht, und auch auf 16,2 umgestellt. Beide Versionen gehen nicht.
Jetzt werde ich mal telefonieren, um mir ein baugleiches Display auszuleihen.
Mein Betriebssystem ist Windows 10
Das andere Display macht genau den gleichen Fehler.
Danke für Eure Hilfe
Wenn mein Display 2 Zeile je16 Zeichen hat, dann muss ich doch die lcd mit 16,2 initialisieren oder nicht?
Hura, jetzt bekomme ich den ganzen String angezeigt.
Dazu habe ich den ChipTyp "PCF8574" abgelesen, und mit dem Suchbegriff in den Libs gesucht und gefunden.
"HD44780_LCD_PCF8574"
Das mitgelieferte Beispielprogramm läuft, und ich werde es in mein Sketch einbauen und anpassen.
Vielen Dank an Alle, die mir behilflich waren.
Hans
schau unter File / Preferences wo deine aktuelles "Sketchbook location" ist
gehe in den Explorer in dieses Verzeichnis.
Wechsle in das Unteverzeichnis libraries
Lösche dort alle alten/nicht benötigten LCD Libraries - sonst schlägst du in 2 Wochen wieder auf weil du irgendwelche Libraries auf deinem PC hast, die nicht funktionieren.
Grins, nein die anderen LCD-Libs habe ich schon gelöscht.
Diese Lib teste ich gerade und gebe jetzt zweizeilig meinen eigenen Text aus. Momentan kämpfe ich mit einem Übergabestring, char testString[] = "Hello Fisch" der sich wie eine Konstante verhält. Er will sich einfach nicht in "blaue Maus " ändern lassen.
Hans