Hi, ich habe ein Problem mit einem Display. Es hat eine Zeichenhöhe von 11 Pixel und einen HD44780 Controller. Wenn ich diese nun mit einem einfachen Sketch ansteuer wird es 1,5 Zeilig dargestellt. Gibt es eine einfache Möglichkeit die Zeichen auf diese 11 Pixel Höhe zu strecken? Leider konnte ich mit Tante Google nichts brauchbares finden. Sketch --- #include <LiquidCrystal.h> LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { lcd.begin(40,2); lcd.setCursor(0, 0); lcd.print("Zeile 1"); lcd.setCursor(0, 1); lcd.print("Zeile 2"); } void loop() { } ---
Sind das wirklich 11 und nicht 12 Pixel? Auf jeden Fall brauchst du einen anderen Zeichensatz. 8x12 sollte zu finden sein.
@ Ronny Lindner (Firma: Pro-Stoff Textilhandel) (graythezebra) >ich habe ein Problem mit einem Display. Es hat eine Zeichenhöhe von 11 >Pixel und einen HD44780 Controller. Datenblatt? Ohne das wird es sehr schwierig. >Gibt es eine einfache Möglichkeit die Zeichen auf diese 11 Pixel Höhe zu >strecken? Vielleicht. Wahrscheinlich muss man es zu Fuß initalisieren, ohne die fertige LiquidCrystal Klasse zu benutzen.
pegel schrieb: > Sind das wirklich 11 und nicht 12 Pixel? > Auf jeden Fall brauchst du einen anderen Zeichensatz. > 8x12 sollte zu finden sein. Ich glaube du hast recht aber es sind wohl eher 10 Zeichen. Nachdem was ich gefunden habe gibt das der HD44780 auch her. Für die Ansteuerung des Displays selbst sind noch 4 HD44100H verbaut, falls diese Infos was bringt.
In dieser pdf https://cdn-shop.adafruit.com/datasheets/HD44780.pdf ab Seite 23 ist die Initialisierung dargestellt. Das Bit F schaltet zwischen 5x8 und 5x10 Dots um. Vielleicht passt das ja zu deinem.
Normalerweise wird bei der Initialisierung der LCD-Displays auch der Zeichensatz gesetzt und zwar im Befehl "system set" bzw. function set" über das Bit d2, für 5x8 ist es 0, für 5x11 ist es 1 http://www.sprut.de/electronic/lcd/index.htm#befehle
Wie wird das bei Ardu* gemacht? Gibt es ein lcd.setXXX oder so? Damit habe ich mich noch nie befasst.
In der Library habe ich folgende Codezeilen gefunden: --- // for some 1 line displays you can select a 10 pixel high font if ((dotsize != LCD_5x8DOTS) && (lines == 1)) { _displayfunction |= LCD_5x10DOTS; } --- und --- void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); --- Daher habe ich einfach mal in meinem Sketch folgende Änderung vorgenommen: --- lcd.begin(40,1, LCD_5x10DOTS); --- Allerdings gibt es auf dem Display keinen Unterschied, der Text wird noch immer mit 7 Pixel Höhe angezeigt.
Habe das gefunden https://forum.arduino.cc/index.php?topic=433358.0 Müsste nach der Logik bei deinem dann lcd.begin(40, 1, 1);
pegel schrieb: > Habe das gefunden > > https://forum.arduino.cc/index.php?topic=433358.0 > > Müsste nach der Logik bei deinem dann > > lcd.begin(40, 1, 1); Vielen Dank, der Link hat geholfen. Ich hatte zwar bereits "lcd.begin(40, 1, 1);" ausprobiert aber bin nicht auf die Idee gekommen das die Zeichen explizit per write gesendet werden müssen. Vielen Dank an alle, es funktioniert nun einwandfrei.
Ronny L. schrieb: > ich habe ein Problem mit einem Display. Es hat eine Zeichenhöhe von 11 > Pixel und einen HD44780 Controller. > > Wenn ich diese nun mit einem einfachen Sketch ansteuer wird es 1,5 > Zeilig dargestellt. > > Gibt es eine einfache Möglichkeit die Zeichen auf diese 11 Pixel Höhe zu > strecken? Klar: man muss den Controller einfach nur korrekt initialisieren. Dazu muss man einfach nur wissen, wie der funktioniert... Leider wissen C&P-Programmierer, die nur Code über Google suchen, sowas nicht... Dumm gelaufen... No mercy...
Hi Es ist zwar teilweise eine ganz schöne Ochserei, eine Hardware 'zu Fuß' in Betrieb zu nehmen, aber es schadet nicht, Das 1x gemacht zu haben. Gleiches auch für die MAX7219-7-Segment-Anzeigen, DS18B20, DHT22 und irgend ein I2C-Expander für ein 'Arduino'-LCD. Da ist zwar ein Tag weg wie NIchts, aber der Einblick, Den man bekommt, wird Dir in Zukunft hilfreich sein! Gerade bei LCDs ist SPRUT (Link weiter oben) meine Nummer 1 - im Endeffekt zeigte sich IMMER, daß der Fehler vor der Tastatur saß ... immerhin -> ich werde für was gebraucht gg MfG
Hi
>Gerade bei LCDs ist SPRUT (Link weiter oben) meine Nummer 1
Ich habe in den letzten 20 Jahren etliche LC-Displays in Betrieb
genommen. Aber "SPRUT" habe ich dazu nie gebraucht. Im Normalfall reicht
das Datenblatt vom LC-Controller.
MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.