Arduino und 11 Pixel hohes LCD oder 1,5 Zeilen

OP (Firma: Pro-Stoff Textilhandel) #5137089
Lesenswert?

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() {

}
---
Angehängte Dateien:
#5137096
Lesenswert?

@ 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.
OP (Firma: Pro-Stoff Textilhandel) #5137101
Lesenswert?

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.
OP (Firma: Pro-Stoff Textilhandel) #5137140
Lesenswert?

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.
OP (Firma: Pro-Stoff Textilhandel) #5137166
Lesenswert?

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.
Gast #5137185
Lesenswert?

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...
#5137221
Lesenswert?

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
Gast #5137258
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren