OLED SSD1306Wire.h nur einzelne Zeichen erneuern

ESP8266 mit Lib SSD1306Wire.h OLED 0,96inch

Kann ich auch einzelne Zeichen aktualisieren ohne das ganze Display zu löschen? Wenn ja - wie?

Ich nutze diese Kombination ebenfalls.
Das ist mir bisher noch nicht gelungen, nur einzelne Zeichen zu ändern.

Mit Space überschreiben?
zB.
display.println(\30);
So wird gemacht bei TFT

Mit Space überschreiben geht nicht. Man kann aber die "Zeichenfarbe" invertieren, dann das bestehende Zeichen mit dem gleichen überschreiben. Die Zeichenfarbe wieder invertieren und das neue Zeichen schreiben.

Ein Beispiel:

Der Einfachheit halber habe ich das auf eine Zeile mit identischer Startposition umgesetzt.
Aber vielleicht hilft das ja auch schon.

Man sollte für einzelne Zeichen einen Monospace Zeichensatz verwenden. Bei einem proportionalen ist es schwierig, die richtigen Koordinaten zu finden :slight_smile: .

1 Like

Sowas hatte ich auch überlegt. Dann müsste man aber jede Variable 2x anlegen: old/new. Das könnte recht unübersichtlich werden.:thinking:

Öfters kommt wegen Kleinlichkeit Spagetticode raus :wink:

Kannst auch ein "Space" als ausgefülltes Rechteck mit Hintergrundfarbe (draw) malen...
Aber als Demo fand ich es erst mal einfacher die Buchstaben zu überschrieben. Das Prinzip ist ja das gleiche.

Dabei ist aber zu berücksichtigen, dass die Zeichenbreite unterschielich ist.
Für mich ist der zusätzliche Aufwand nicht gerechtfertigt.

Wieso, weshalb, warum, was willst Du erreichen?

Ein kurzes Programmbeispiel, wie es nicht so funktioniert, wie Du möchtst, wäre hilfreich.

Ginge auch eine andere Bibliothek?

Einen nicht funktionierenden Sketch gibt es noch nicht. Bin am überlegen wie ich das kleine Display am besten nutze. Also erst mal alles virtuell.

Ich nutze den ESP hier

Bietet eine andere Lib da bessere Möglichkeiten?

Also ich nutze das Oled auch mit der Lib. Hat den Vorteil, die ist einfach und reicht für sehr viele Projekte aus. Geht auch prima am ESP8266-01.

Kommt drauf an, was du mit besser meinst.

Testen?
Oder wo ist das Problem ?
Im deinem Link ist auch andere Lib im Gange ("OLEDDisplayUi.h")

Es gibt ganz unterschiedliche Kriterien für "besser", allgemein läßt sich das nicht beantworten.

Meist nutze ich die Bibliotheken von Oli Kraus, weil sie praxisorientierte Lösungen bietet, leider auch Speicher fressen, was beim ESP8266 aber nicht so ins Gewicht fällt. Bislang konnte ich mit denen alles anzeigen, was ich anzeigen wollte.

Darum erwähnte ich ja, dass ein Monospace Zeichensatz verwendet werden sollte, wenn man das wirklich so machen will.... warum auch immer...

Ja, das stimmt.
Nur sind die Zeichensätze in der Lib sehr begrenzt.

In der Beschreibung zu der SSD1302 Library ist ein Link ( Angularclient) zu einer Seite angegeben, bei der man einen Zeichensatz generieren und diesen per Header File einbinden kann. Ich habe das bei dem WokWi Beispiel ebenfalls gemacht. Allerdings habe ich statt DejaVu_Sans_Mono nur DejaVu_Sans erwischt.

Habe es gerade in Monospaced_plain_10 geändert.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.