OLED Display

Fernsteuerung, Wifi-Controller, ...
Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 68 Mal
Danksagung erhalten: 17 Mal

OLED Display

Beitrag von Ralf_St. » 25.12.2020, 01:15

Hallo Sven

Ich benutze bei meinen zwei Test-Controllern einmal das 16 x 2 und zum anderen das OLED Display. Das 16 x 2 ist gut, aber relativ groß , schwer und verbraucht wohl auch mehr Energie.

Daher habe ich mich beim ESP32-Test-Controller für das OLED Display entschieden. Es ist viel kleiner, verbraucht kaum Energie und kann mehrere Zeilen anzeigen. So weit so gut...
Bei meinem Display können 4 Zeilen dargestellt werden. Effektiv genutzt werden aber nur drei Zeilen, in die erste habe ich einfach RAST eingetragen.
Ich hau hier einfach mal ein paar Fragen raus, vielleicht geht ja noch was...

Die erste Frage hat mit den Zeilen überhaupt nix zu tun, kann das "Bild" vom Display um 180 Grad gedreht werden, ohne die Platine zu drehen?

Jetzt aber zu den Fragen der Zeilen:
Besteht die Möglichkeit die Funktionstasten über mehrere Zeilen anzuzeigen?
Die Anzeige als "Laufband" läßt zwar mehr Zeichen zu als das Display her gibt, bedingt aber konzentriertes beobachten der Laufschrift, um zu erkennen welche Funktion eingeschaltet ist oder nicht.
Wenn es möglich wäre bestimmte Funktionen in Zeile 1 und weitere in Zeile 2 anzuzeigen, wäre das sicherlich schon mal von Vorteil...!
Wenn dann noch die Funktionen ("setF") aus der Anzeige heraus gelassen werden, müsste eh weniger dargestellt werden.

Ein etwas größeres Display, wenn es das überhaupt gibt, könnte noch mehr in jeder Zeile anzeigen, und hat vielleicht sogar mehr als vier Zeilen...

Oder, und jetzt wird es heftig, ein Display auf dem alles in festen Bereichen dargestellt wird!?
Ist eine Funktion geschaltet = schwarze Schrift auf hellem Untergrund, ist sie nicht geschaltet = der Hintergrund bleibt dunkel...!? So oder ähnlich...

Nachtrag:
Im Grunde schaue ich nur dann auf das Display, wenn ich die Lok fahrbereit mache.
Aber bestimmte Funktionen schalte ich vor oder während der Fahrt dazu und dann kommt es vor, dass ich doch wieder auf das Display schauen muss um zu prüfen ob die Funktion eingeschaltet ist oder nicht.
Gruß, Ralf

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 144 Mal

Re: OLED Display

Beitrag von little.yoda » 25.12.2020, 10:40

Ralf_St. hat geschrieben:
25.12.2020, 01:15
Daher habe ich mich beim ESP32-Test-Controller für das OLED Display entschieden. Es ist viel kleiner, verbraucht kaum Energie und kann mehrere Zeilen anzeigen. So weit so gut...
Bei meinem Display können 4 Zeilen dargestellt werden. Effektiv genutzt werden aber nur drei Zeilen, in die erste habe ich einfach RAST eingetragen.
Ich hau hier einfach mal ein paar Fragen raus, vielleicht geht ja noch was...
Eigentlich sollten es (ungetestet) 5 Zeilen sein.

Das Display hat 64x48 Pixel. Die Schriftart ist 6x8.
Sollte also 10x6 Zeichen ergeben.
(Beim Schreiben dieser Zeile entstehen auf meiner Stirn Falten. Ich muss es nochmal testen. Gefühlt passt Theorie und Praxis hier nicht zusammen.)
Ralf_St. hat geschrieben:
25.12.2020, 01:15
Die erste Frage hat mit den Zeilen überhaupt nix zu tun, kann das "Bild" vom Display um 180 Grad gedreht werden, ohne die Platine zu drehen?
ja, geht

Code: Alles auswählen

{
            "m":"display",
            "text": "L${ldata|addr}:${ldata|direction}${ldata|speed}\nW ${ldata|turnoutaddr}: ${ldata|turnoutdirection}>
            "model": "Wemos OLED Shield",
            "rotation": "180"
}
(Unterstützt werden 0, 90, 180 und 270; 90 und 270 aber kaum getestet )

Ralf_St. hat geschrieben:
25.12.2020, 01:15
Jetzt aber zu den Fragen der Zeilen:
Besteht die Möglichkeit die Funktionstasten über mehrere Zeilen anzuzeigen?
Die Anzeige als "Laufband" läßt zwar mehr Zeichen zu als das Display her gibt, bedingt aber konzentriertes beobachten der Laufschrift, um zu erkennen welche Funktion eingeschaltet ist oder nicht.
Wenn es möglich wäre bestimmte Funktionen in Zeile 1 und weitere in Zeile 2 anzuzeigen, wäre das sicherlich schon mal von Vorteil...!
Wenn dann noch die Funktionen ("setF") aus der Anzeige heraus gelassen werden, müsste eh weniger dargestellt werden.

[.....]

Oder, und jetzt wird es heftig, ein Display auf dem alles in festen Bereichen dargestellt wird!?
Ist eine Funktion geschaltet = schwarze Schrift auf hellem Untergrund, ist sie nicht geschaltet = der Hintergrund bleibt dunkel...!? So oder ähnlich...
Über wie viele F-Tasten reden wir denn bei euch? Passen sie denn überhaupt in zwei Zeilen?
Ich muss bei der Implementierung immer schauen, dass es generisch genug ist, damit es auch für andere Nutzer sinnvoll ist.

Wahrscheinlich baue ich eine Funktion ein, dass ihr auf die Information der einzelnen F-Tasten zugreifen könnt.
Dann kannst du dir die Anzeige sehr detailliert zusammenstellen. Man könnte es extrem quetschen.

Code: Alles auswählen

Ziele 1: 0123456789
Zeile 2: 0123456789
Zeile 1 wäre dann für F0 bis F9
Zeile 2 für F10 bis F19.

F-Funktionen, die deaktiviert sind, werden dann durch ein Leerzeichen ersetzt.
Invertierung wird zu aufwendig sein.

Ralf_St. hat geschrieben:
25.12.2020, 01:15
Ein etwas größeres Display, wenn es das überhaupt gibt, könnte noch mehr in jeder Zeile anzeigen, und hat vielleicht sogar mehr als vier Zeilen...
Ein paar Ideen habe ich noch:

Auf meinen Schreibtisch liegt noch dieses Modul(*). Preislich liegt es in China bei 4 Euro. Auflösugn 240x240. 1,3".
https://www.youtube.com/watch?v=7vYIGGlBRkU
=> 4 Pine werden benötigt

Eine weitere Option wäre dieses Modul(*).
Preislich liegt es ebenfalls bei 4 Euro. Auflösung 128x64. Dachte eigentlich, dass ich das Modul schon mal bestellt habe, finde es aber gerade nicht.
=> 2 Pine, wenn man die i²c Version nutzt.

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 68 Mal
Danksagung erhalten: 17 Mal

Re: OLED Display

Beitrag von Ralf_St. » 25.12.2020, 12:29

Frohe Weihnachten Sven

Du bist ja spitze, sogar über Weihnachten kümmerst Du dich...

Zwei Zeilen 0 bis 9 ist eine super Idee und ist vergleichbar mit der WLM, aus meiner Sicht sogar besser, weil ich beide Ebenen direkt im Blick habe!
Die Möglichkeit mit dem drehen des Bildschirms werde ich testen und rückmelden ob es geklappt hat. Ob 5 Zeilen angezeigt werden können werde ich auch noch testen.

Gestern konnte ich noch einige Züge be- und entladen. Das hat so einen Spaß gemacht das ich beinahe die Bescherung verpasst hätte... :mrgreen:

Gut ist schon mal zu wissen das auch ein größeres Display funktioniert, jetzt wird aber erst mal das OLED "gedreht" und geprüft ob 5 Zeilen funktionieren!
Gruß, Ralf

Norbert
Beiträge: 300
Registriert: 31.12.2018, 08:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 71 Mal

Re: OLED Display

Beitrag von Norbert » 25.12.2020, 13:18

5 Zeilen funktionieren, beim 0,66"" -Shield, habe ich beim LYCON-28 in Betrieb.
Für mich sieht es fast so aus, als würde da sogar noch eine 6. Zeile Platz finden.....

Display-Anzeige drehen funktioniert,
der Hinweis kam hier im Forum schon am 28.11. :mrgreen: , siehe letzten Satz und betrachte das Foto:

viewtopic.php?f=6&t=87&start=10

VG N.

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 68 Mal
Danksagung erhalten: 17 Mal

Re: OLED Display

Beitrag von Ralf_St. » 26.12.2020, 00:27

Hallo Norbert

Frohe Weihnachten und danke für den Hinweis.
Ich bin heute bis auf etwas schreiben zu nix anderem gekommen.
Sobald ich etwas Luft habe, werde ich die Config entsprechend ändern und auch testen ob 6 Zeilen möglich sind.
Vielleicht hast Du in meinem Bericht zum Rast-Test-Controller gesehen das ich auf der Suche nach besseren und kleineren Tastern bin, wenn Du mir dazu einen Tipp geben kannst, wäre ich Dir sehr dankbar.
Gruß, Ralf

Norbert
Beiträge: 300
Registriert: 31.12.2018, 08:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 71 Mal

Re: OLED Display

Beitrag von Norbert » 26.12.2020, 09:43

Hallo Ralf,
6 Zeilen werden dir nicht gelingen....
Bezüglich anderer Taster kann ich dir leider keinen Tipp geben. Meine sind eher größer, tiefer.
Die von dir angepeilten Kurzhub-Microtaster habe ich bislang nie als Oft-Betätiger verwendet,
da fehlt mir das Vertrauen in die simplen Teile, die zudem kein 5mm-Raster haben,
wie du wohl annimmst. 2 Stück davon habe ich kürzlich noch in meinen LYCONT-28 eingebaut, die habe ich einfach vorab verdrahtet, eingesetzt und dann mit Heißkleber zugeschüttet.
Elegant wäre da eine passend gezeichnete Ätzplatine, wie Sven es gemacht hat, dann passen die Teile auch genau aufs Kupfer und in die Bohrlöcher, sonst wird das eine elende Fummelarbeit mit ungewissem Ausgang.
Ansonsten würde ich mal bei Reichelt suchen lassen, was es da so gibt.

VG N.

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 68 Mal
Danksagung erhalten: 17 Mal

Re: OLED Display

Beitrag von Ralf_St. » 26.12.2020, 12:37

Hallo Norbert

Vielen Dank für deine Antwort bezüglich der Taster.

Zum Display habe ich mal ein Foto gemacht:
OLED_6Zeilen.jpg
OLED_6Zeilen.jpg (29.32 KiB) 4972 mal betrachtet
Ich habe das Display um 180 Grad gedreht und drei Zeilen hinzu gefügt, diese sind mit "1", "3" und "5" angezeigt.
Gruß, Ralf

Norbert
Beiträge: 300
Registriert: 31.12.2018, 08:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 71 Mal

Re: OLED Display

Beitrag von Norbert » 26.12.2020, 12:43

Donnerwetter,
hätte ich nicht gedacht, dass das so in Svens Binär-Datei hinterlegt ist...

VG N.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 144 Mal

Re: OLED Display

Beitrag von little.yoda » 27.12.2020, 11:45

Ich habe die Funktionalität in der aktuelle Beta-Version eingebaut.

Hier ein Beispiel für zwei Zeilen für F0 bis F9 und F10 bis F19.

Code: Alles auswählen

            "text": [
                "${ldata|f0|s/0/ /g|s/1/0/g}${ldata|f1|s/0/ /g|s/1/1/g}${ldata|f2|s/0/ /g|s/1/2/g}${ldata|f3|s/0/ /g|s/1/3/g}${ldata|f4|s/0/ /g|s/1/4/g}${ldata|f5|s/0/ /g|s/1/5/g}${ldata|f6|s/0/ /g|s/1/6/g}${ldata|f7|s/0/ /g|s/1/7/g}${ldata|f8|s/0/ /g|s/1/8/g}${ldata|f9|s/0/ /g|s/1/9/g}",
                "${ldata|f10|s/0/ /g|s/1/0/g}${ldata|f11|s/0/ /g|s/1/1/g}${ldata|f12|s/0/ /g|s/1/2/g}${ldata|f13|s/0/ /g|s/1/3/g}${ldata|f14|s/0/ /g|s/1/4/g}${ldata|f15|s/0/ /g|s/1/5/g}${ldata|f16|s/0/ /g|s/1/6/g}${ldata|f17|s/0/ /g|s/1/7/g}${ldata|f18|s/0/ /g|s/1/8/g}${ldata|f19|s/0/ /g|s/1/9/g}",
                "Zeile3",
                "Zeile4"
                ],



Ich will mehr wissen

[Ich weiß, mittlerweile ziemlich unübersichtlich]
Um mal ein Beispiel zu erklären:

Ich picke mir die Anzeige für F9 heraus:

Code: Alles auswählen

${ldata|f9|s/0/ /g|s/1/9/g}
Die einzelnen Elemente sind durch ein "|" getrennt.
  • ldata
  • f9
  • s/0/ /g
  • s/1/9/g
Die ersten zwei Elemente ("ldata" und "f9") sagen, welcher Wert überhaupt genutzt werden soll. [1]
In diesem Fall also der Status der F9-Taste. Dieser Wert ist entweder eine "0" oder "1".

Da uns aber in diesem Fall eine Folge der Art "0101011101" nichts hilft, wollen wir stattdessen eine Anzeige, aus der klar wird, welche F-Taste aktiv ist:"_1_3_567_9"

Wir müssen also (für unser Beispiel), die "0" in ein " " und die "1" in eine 9 verwandeln.
Dafür sind die nächsten Befehle.

"s/0/ /g" heißt soviel wie "Ersetze" alle "0" durch " ". [2]
"s/1/9/g" heißt soviel wie "Ersetze alle "1" durch "9".

Damit konstruiert man also die gewünschte Anzeige, die entweder " " oder "9" ausgibt.
Und nun dieses Spielchen für alle 20 F-Tasten wiederholen :-)


Ich will noch mehr wissen
Wahrscheinlich kommt jetzt bei allen nicht Programmieren die Frage auf, warum so komplex.
Ganz einfach, weil euch jetzt sehr viele Möglichkeiten offen stehen.


Ihr mag diese Form der Anzeige nicht, sondern wollt selbst sprechende Bezeichner?
Bitte schön:

${ldata|f0|s/0/Licht aus/g|s/1/Licht an/g}
Wenn F0 aktiv ist, wird jetzt "Licht an" ausgeben. Wenn F1 deaktiviert ist, ein "Licht aus".

Die Möglichkeiten sind endlos.


Gruß,
Sven




[1] Eine Liste der auf eurem ESP verfügabren Informationen könnt ihr euch über http://<ip>/help anzeigen lassen.
[2.1] Ist an den Sed-Syntax angelehnt, aber ich unterstütze nur einfaches ersetzen ohne Regex oder ähnliches
[2.2] Neben dem s/../../g gibt es noch ein Formatierungsbefehl z.B. "% 3s". siehe http://www.cplusplus.com/reference/cstdio/printf/. Hinweis: Es ist immer ein String. Also "%3.5f" wird nicht(!) unterstützt.

Ralf_St.
Beiträge: 355
Registriert: 18.09.2018, 01:14
Hat sich bedankt: 68 Mal
Danksagung erhalten: 17 Mal

Re: OLED Display

Beitrag von Ralf_St. » 27.12.2020, 20:18

Hallo Sven

Verstanden habe ich das Du extrem fleißig warst und die Funktionstasten nun besser sichtbar gemacht werden können als bisher.
Aber danach beginnt für mich ein Labyrinth von Informationen welches ich nun versuche zu durchdringen...

Um mal an "deine" Ausgabe Information anzuknüpfen:
Bei mir müsste, wenn F0 eingeschaltet ist folgendes ausgegeben werden: "Licht an"|"Motor an"...

Nach dem Motto jeder wie er es mag, wäre mir Deine Anfangsidee mit zwei Zeilen von 0 bis 9 am liebsten.
Ich bin gespannt ob ich das hin bekomme!
Gruß, Ralf

Antworten