Frage zu LCD TC1604A

Hallo Arduino-Gemeinde,

bin neu hier und sage daher erstmal nett "Hallo" :) Nachdem ich lange um Microcontroler rumgeschlichen bin habe ich nun vor nicht allzu langer Zeit eingekauft: - Arduino Uno - Midi-Shield (bastel gerade an einem kleinen Midi-Controler) - ein paar leere Shields zum Experimentieren - das berühmte Pollin LCD TC1604A-01

Für letzteres habe ich bereits die LiquidCrystal Library angepaßt, sodass das Adressmapping paßt. Alles fein 8) Cursor per lcd.setCursor korrekt positionieren ist also gewährleistet.

Fange ich aber an Text zu schieben, geht's aber weiterhin von Zeile 1 auf Zeile 3, dort scheint auch noch "unsichtbarer" Adressraum für 8 Zeichen zu sein, dann folgt Zeile 2 und danach Zeile 4.

Ich habe im Datenblatt für das 2-zeiligen Pendant folgende Adresstabelle gefunden: 1st Line: 00h - 0Fh 2nd Line: 40h - 4Fh 3rd Line: 10h - 1Fh 4th Line: 50h - 5Fj

Bis auf den unsichtbaren Raum macht das Schieben also adresstechnisch Sinn, in der Praxis natürlich lästig.

Meine Frage: habe ich eine Chance, ohne Riesenaufwand aus diesem Dilemma rauszukommen? Die Thematik scheint mir allgegenwärtig zu sein, zumindest wenn man sich die feine Seite http://web.alfredstate.edu/weimandn/lcd/lcd_addressing/lcd_addressing_index.html durchliest.

Freue mich auf Rückmeldung, schöne Grüße

Klaus

Hi Klaus

Ich habe selbst mehrere Character LCD im Einsatz und lese auch viel über das Schieben. Aber so richtig hatte ich dafür nie eine Anwendung. Anders gefragt: Warum braucht man eigentlich das Schieben?

Egal, jedenfalls hier meine Idee zum Schieben: Definiere Dir doch deinen eigenen Buffer char display_buffer[4][16]; für ein 4x16 Display (entsprechend anders für andere Displays) Dann ein Satz von Unterprogrammen die das schiften realisieren, indem die einzelnen Zeichen in dem Buffer kopiert/verschoben werden. Schließlich ein Unterprogramm, das den Buffer als ganzes zum LCD sendet.

Wenn Du das ganze automatisiert haben willst, in der m2tklib gibt es das STRLIST und INFO element, das entsprechendes "Schieben" automatisiert hat (zumindest vertikal...): http://code.google.com/p/m2tklib/wiki/elref#INFO und http://code.google.com/p/m2tklib/wiki/elref#STRLIST:

Die beiden Klammern [ und ] lassen sich nach oben und unten bewegen. Der Text wird dann entsprechend verschoben, so das man die gesamte Geschichte lesen kann.

Grüße, Oliver

Hallo Oliver,

danke für die ausführliche Darstellung. Du hast schon recht, so richtig braucht man das Schieben wohl nicht (außer für Spielereien wie Laufschriften vielleicht ....). Ich werde mir Deine Quellen mal zu Gemüte führen.

Heißt das letztlich aber auch, dass im Allgemeinen eigentlich immer mit setCursor gearbeitet wird?

Gruß Klaus

Heißt das letztlich aber auch, dass im Allgemeinen eigentlich immer mit setCursor gearbeitet wird?

Ich denke das kommt auf den Anwendungsfall an. M2tklib arbeitet sehr viel mit setCursor, hingegen würde die buf[4][16] lösung ja an sich recht wenige setCursor aufrufe benötigen.

Grüße, Oliver

Alles klar, dann werde ich mich erstmal weiter mit meinen Midi-Spielsachen beschäftigen und das LCD-Thema nach hinten schieben.

Schönes WE Klaus