Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:oled:display-steuerung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anleitungen:oled:display-steuerung [2025/10/25 17:35] – [Verwendung im Steuerungsprogramm] raily74anleitungen:oled:display-steuerung [2025/12/07 15:27] (aktuell) – [Erste Übertragung auf den ESP32] fbstr
Zeile 3: Zeile 3:
  
 Zur alten Anleitung (v2.1): [[display-steuerung_v2.1|zur Vorgängerplatine]] Zur alten Anleitung (v2.1): [[display-steuerung_v2.1|zur Vorgängerplatine]]
- 
-<WRAP round alert 80%> 
-Hier entsteht die Anleitung zur überarbeiteten Display-Steuerung für Zugzielanzeiger in Version v3.\\ 
-Die alte Anleitung ist oben verlinkt. \\ 
-**Die Platine ist in Planung und wird erst nach ausgiebigen Tests veröffentlicht.** 
-</WRAP> 
- 
 ==== Aller guten Dinge sind drei ==== ==== Aller guten Dinge sind drei ====
 Mit der ZZA Steuerung v3 wird aus den einzelnen Komponenten endlich ein vollständiges System. \\ Basierend auf Ideen von Tobias, [[https://www.stummiforum.de/t131472f21-Zugzielanzeiger-f-r-den-Bahnsteig-mit-Arduino-2.html#msg1848960|Klaus,]] und Fredddy entwickelte Hardi 2019 einen optimierten Sketch, mit dem es erstmals möglich war, 0,87“ und 0,91“ Monochrom-Displays per DCC-Befehl zu aktualisieren. \\ Mit der ZZA Steuerung v3 wird aus den einzelnen Komponenten endlich ein vollständiges System. \\ Basierend auf Ideen von Tobias, [[https://www.stummiforum.de/t131472f21-Zugzielanzeiger-f-r-den-Bahnsteig-mit-Arduino-2.html#msg1848960|Klaus,]] und Fredddy entwickelte Hardi 2019 einen optimierten Sketch, mit dem es erstmals möglich war, 0,87“ und 0,91“ Monochrom-Displays per DCC-Befehl zu aktualisieren. \\
Zeile 26: Zeile 19:
 Gegenüber dem Vorgänger können nun endlich alle vorhandenen OLED-Adapter verwendet werden. Dazu gehören die Display-Adapter (750) in zwei- und vierfacher Ausführung sowie die Kofferplatine (760). Gegenüber dem Vorgänger können nun endlich alle vorhandenen OLED-Adapter verwendet werden. Dazu gehören die Display-Adapter (750) in zwei- und vierfacher Ausführung sowie die Kofferplatine (760).
  
-==== Aufbau der Platine ====+===== Aufbau der Platine =====
 Zum Aufbau gibt es nicht viel zu sagen. Die Platine ist nahezu komplett vorbestückt. Lediglich 21 Teile müssen gelötet werden und abgesehen von der Richtung kann hier prinzipiell nichts vertauscht werden. \\ Zum Aufbau gibt es nicht viel zu sagen. Die Platine ist nahezu komplett vorbestückt. Lediglich 21 Teile müssen gelötet werden und abgesehen von der Richtung kann hier prinzipiell nichts vertauscht werden. \\
  
Zeile 37: Zeile 30:
 Im Anschluss kann direkt der Optokoppler eingesteckt werden. Hier bitte unbedingt auf korrekte Position von Pin 1 achten. Der Punkt auf dem IC zeigt wie im Bild nach unten links. Im Anschluss kann direkt der Optokoppler eingesteckt werden. Hier bitte unbedingt auf korrekte Position von Pin 1 achten. Der Punkt auf dem IC zeigt wie im Bild nach unten links.
  
-{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts02.jpg?640x420|}}+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts02.jpg?600|}}
  
 **Schritt 3**\\ **Schritt 3**\\
-Die Versorgungsspannung (5V) erfolgt über den grünen Stecker mit 3,5 mm Rastermaß. +Die Versorgungsspannung (5V) erfolgt über den grünen Stecker mit 3,5 mm Rastermaß.\\ 
 +<WRAP round important 60%> 
 +**Achtung:** Die Polarität wurde an den MobaLedLib-Standard angepasst.\\ 
 +Bei der Vorgängerplatine war die Polarität vertauscht.</WRAP> 
  
 {{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts03.jpg?600|}} {{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts03.jpg?600|}}
Zeile 86: Zeile 83:
 Bei Zweifach-Displays können die Leitungen SCL, 3V3 und GND mit Y-Verbindungen aufgeteilt werden. \\ Bei Zweifach-Displays können die Leitungen SCL, 3V3 und GND mit Y-Verbindungen aufgeteilt werden. \\
 So können je Wannenstecker zwei Zweifach-Displays, also vier OLEDs betrieben werden (rot/grün). \\ So können je Wannenstecker zwei Zweifach-Displays, also vier OLEDs betrieben werden (rot/grün). \\
 +\\
  
 === Reihenfolge der Displays === === Reihenfolge der Displays ===
Zeile 128: Zeile 126:
 Das TextMessages Tool unterstützt bei der Eingabe der erforderlichen Daten. Dazu gehören in erster Linie die Zugziele, WLAN- und DCC-Einstellungen sowie die Zuordnung der Displays an die jeweiligen Gleise. Nach der Eingabe in die grafische Oberfläche wandelt das Tool die Daten in die benötigte Arduino-Sprache um.  Das TextMessages Tool unterstützt bei der Eingabe der erforderlichen Daten. Dazu gehören in erster Linie die Zugziele, WLAN- und DCC-Einstellungen sowie die Zuordnung der Displays an die jeweiligen Gleise. Nach der Eingabe in die grafische Oberfläche wandelt das Tool die Daten in die benötigte Arduino-Sprache um. 
  
-Mit dem Tool können mehrere JSON-Dateien angelegt, bearbeitet und exportiert werden. So lassen sich beispielsweise unterschiedliche Ziele je Bahnhof verwalten. Dabei kann der Sketch immer derselbe sein, bei dem lediglich die Text_Messages.h vor dem Upload ersetzt wird. +Mit dem Tool können mehrere JSON-Dateien angelegt, bearbeitet und in den Sketch umgewandelt werden. So lassen sich beispielsweise unterschiedliche Ziele je Bahnhof verwalten. Dabei kann der Sketch immer derselbe sein, bei dem lediglich die Text_Messages.h vor dem Upload ersetzt wird. 
 + 
 +Um das TextMessages Tool nutzen zu können, ist - sofern durch die MobaLedLib noch nicht geschehen - die Installation von Python erforderlich. \\ 
 +=> https://www.python.org/downloads/
  
 **Zugziele**\\ **Zugziele**\\
Zeile 135: Zeile 136:
 Im Reiter Zugziele werden alle gewünschten Ziele je Zuggarnitur definiert. Es empfiehlt sich, die Ziele an eine bestimmte Lokomotive zu binden, da das Steuerungsprogramm (z. B. iTrain) diese Lok abfragen kann. Um einen Überblick der zugeordneten Ziele zu erhalten, kann zu jedem Ziel der Name der jeweiligen Lok hinzugefügt werden. Nach diesem Namen kann man später auch suchen. Es empfiehlt sich, hier die Baureihe einzutragen.  Im Reiter Zugziele werden alle gewünschten Ziele je Zuggarnitur definiert. Es empfiehlt sich, die Ziele an eine bestimmte Lokomotive zu binden, da das Steuerungsprogramm (z. B. iTrain) diese Lok abfragen kann. Um einen Überblick der zugeordneten Ziele zu erhalten, kann zu jedem Ziel der Name der jeweiligen Lok hinzugefügt werden. Nach diesem Namen kann man später auch suchen. Es empfiehlt sich, hier die Baureihe einzutragen. 
  
-Die DCC Adressen werden vom Sketch fortlaufend vergeben. Daher bietet das Tool keine Möglichkeit zur Sortierung der Ziele (z. B. nach Baureihe), da die Neusortierung zu Abweichungen mit der Programmierung im Steuerungsprogramm führen würde. +Die DCC Adressen werden vom Sketch fortlaufend vergeben. Daher bietet das Tool keine Möglichkeit zur Sortierung der Ziele (z. B. nach Baureihe), da die Neusortierung zu Abweichungen mit der Programmierung im Steuerungsprogramm führen würde.
  
 +Die hier einzutragende Adresse für das erste Zugziel richtet sich nach der DCC Startadresse (n), die im Reiter „Einstellungen“ eingetragen wird und der Anzahl der angeschlossenen Gleise. Sie dient als Orientierung und hat keinen Einfluss auf das Programm. 
  
-**Einstellungen**\\+^ Gleise ^ DCC erstes Ziel ^ 
 +| bis zu 2 | n+4 | 
 +| bis zu 4 | n+6 | 
 +| bis zu 6 | n+8 | 
 +| … | | 
 +| bis zu 32 | n+34 | 
 + 
 +**Gleis Zuordnung**\\
 {{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab2.png?800|}} {{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab2.png?800|}}
 +
 +Der Reiter „Gleis Zuordnung“ ist so aufgebaut, dass er die Gleisgruppen selbst vorgibt. So ist keine Anpassung der Reihenfolge im Sketch mehr erforderlich. Jede Doppelspalte entspricht einem Gleis. Werden mehr als 16 Displays für ein Gleis benötigt, müssen diese in zwei benachbarten Doppelspalten eingetragen werden, damit sie zur selben Gleisgruppe gehören. Dieser Fall ist äußerst selten, weil für das zweite Gleis weniger als die Hälfte aller Displays übrig blieben. Mit der Ausrichtung [L/R] wird angegeben, ob die Gleisnummer links oder rechts im Display erscheinen soll. 
 +
 +Die SDA Anschlüsse werden entsprechend der vorgenommenen Verdrahtung angegeben (siehe „Reihenfolge der Displays“). Für ein vierfaches Doppeldisplay sind das in der Regel zwei Gleise mit jeweils zwei Ausrichtungen. Dieses vierfache Doppeldisplay belegt jeweils eine Reihe zweier Doppelspalten (z. B. SDA 0 und 2 für Gleis 1 L/R und SDA 3 und 1 für Gleis 2 L/R). Die Gleisseite lässt sich für zwei Doppelspalten auch in der Reihenfolge L/R/R/L eintragen, was von der Logik eher dem Aufbau der Adapterplatine (750) entspricht.
 +
 +Zum besseren Verständnis hier ein Beispiel für drei Gleise, die am Empfangsgebäude des Bahnhofs liegen. Gleis 1 wird mit einem doppelseitigen Einzeldisplay bedient, Gleis 2 und 3 werden über ein doppelseitiges Zweifachdisplay bedient. Das Einzeldisplay nutzt nur zwei der vier Anschlüsse des ersten Wannensteckers, das Zweifachdisplay nutzt alle vier Anschlüsse des zweiten Wannensteckers.
 +
 +{{:bilder:anleitungen:bauanleitungen:740:zza_sda-anschluss.jpg?480|}}
 +
 +
 +**Einstellungen**\\
 +{{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab3.png?800|}}
  
 Im Reiter Einstellungen werden als erstes die WLAN Zugangsdaten eingegeben, um den Sketch kabellos übertragen zu können. Die erste Übertragung muss selbstverständlich per USB Kabel erfolgen, da die Zugangsdaten noch nicht übermittelt wurden. Da die MobaLedLib nach wie vor die Arduino IDE 1.8.19 voraussetzt, ist es zwingend erforderlich, dass der ESP32 erst nach dem Öffnen der Arduino IDE gestartet wird. Es empfiehlt sich daher, die ZZA Steuerung über ein Relais schaltbar zu machen, sofern man die Übertragung per WLAN nutzen möchte.  Im Reiter Einstellungen werden als erstes die WLAN Zugangsdaten eingegeben, um den Sketch kabellos übertragen zu können. Die erste Übertragung muss selbstverständlich per USB Kabel erfolgen, da die Zugangsdaten noch nicht übermittelt wurden. Da die MobaLedLib nach wie vor die Arduino IDE 1.8.19 voraussetzt, ist es zwingend erforderlich, dass der ESP32 erst nach dem Öffnen der Arduino IDE gestartet wird. Es empfiehlt sich daher, die ZZA Steuerung über ein Relais schaltbar zu machen, sofern man die Übertragung per WLAN nutzen möchte. 
Zeile 150: Zeile 171:
  
 Die Display-Rotation ist standardmäßig aktiviert, weil es zum einen der Ausrichtung auf der Adapterplatine (750) entspricht und zum anderen die schnellste Aktualisierung der Displays gewährleistet. Die Option ist für den Notfall gedacht, wenn das Display versehentlich über Kopf eingebaut wurde. Es wird daher empfohlen, die Ausrichtung der Displays vor dem festen Einbau zu prüfen.  Die Display-Rotation ist standardmäßig aktiviert, weil es zum einen der Ausrichtung auf der Adapterplatine (750) entspricht und zum anderen die schnellste Aktualisierung der Displays gewährleistet. Die Option ist für den Notfall gedacht, wenn das Display versehentlich über Kopf eingebaut wurde. Es wird daher empfohlen, die Ausrichtung der Displays vor dem festen Einbau zu prüfen. 
 + 
  
 +**Umwandeln**\\
 +Sind alle Einstellungen korrekt eingetragen, wandelt man mit dem Button „Umwandeln (.h)“ die Werte in die benötigte „Text_Messages.h“-Datei um und ersetzt diese im Verzeichnis „users/user/documents/Arduino/Zugzielanzeiger“. Die "Text_Messages.h" kann übrigens ohne Bedenken ersetzt werden, da das Programm automatisch ein Backup der letzten 20 Konfigurationen erstellt und die ältesten automatisch löscht. Ist die Arduino IDE in einem der beiden Standard-Verzeichnisse installiert, öffnet das Programm nach erfolgreicher Umwandlung sogar den Sketch in der Arduino IDE. Nach einem kurzen Neustart des ESP32 kann der veränderte Sketch nun per WLAN übertragen werden. 
 +===== Download und Installation des ESP Sketches =====
  
-**Gleis Zuordnung**\\ +<WRAP round box> 
-{{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab3.png?800|}}+[[https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Zugzielanzeiger.zip|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Der Sketch ist hier zu finden:\\ 
 +https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Zugzielanzeiger.zip \\ 
 +</WRAP>
  
-Der Reiter „Gleis Zuordnung“ ist so aufgebaut, dass er die Gleisgruppen selbst vorgibt. So ist keine Anpassung der Reihenfolge im Sketch mehr erforderlich. Jede Doppelspalte entspricht einem Gleis. Werden mehr als 16 Displays für ein Gleis benötigt, müssen diese in zwei benachbarten Doppelspalten eingetragen werden, damit sie zur selben Gleisgruppe gehören. Dieser Fall ist äußerst selten, weil für das zweite Gleis weniger als die Hälfte aller Displays übrig blieben. Mit der Ausrichtung [L/R] wird angegeben, ob die Gleisnummer links oder rechts im Display erscheinen soll. +==== Erste Übertragung auf den ESP32 ====
  
-Die SDA Anschlüsse werden entsprechend der vorgenommenen Verdrahtung angegeben (siehe „Reihenfolge der Displays“). Für ein vierfaches Doppeldisplay sind das in der Regel zwei Gleise mit jeweils zwei AusrichtungenDieses vierfache Doppeldisplay belegt jeweils eine Reihe zweier Doppelspalten (zBSDA 0 und 2 für Gleis 1 L/R und SDA 3 und 1 für Gleis 2 L/R)Die Gleisseite lässt sich für zwei Doppelspalten auch in der Reihenfolge L/R/R/L eintragen, was von der Logik eher dem Aufbau der Adapterplatine (750entspricht. +Es empfiehlt sich, vor dem ersten Übertragen **mindestens** die WLAN-SSID, das WLAN Passwort und den gewünschten ESP-Hostname im Text Messages Tool einzugeben und den Sketch mit diesen Daten **per USB-Kabel** auf den ESP32 zu übertragenNach dem Umwandeln der Eingaben in die "TextMessages.h" öffnet sich auf Wunsch die Arduino IDE. Vor dem ersten Upload auf den ESP32 müssen wie gewohnt über "Werkzeuge > Bibliotheken verwalten..." folgende Bibliotheken installiert werden: 
 +  * SparkFun I2C Mux Arduino Library 
 +  * Streaming 
 +  * U8g2 
 +  * WiFi 
 +  * Arduino_ESP32_OTA 
 +  * NmraDcc (wird bei Installation der MobaLedLib bereits installiert)
  
-**Export**\\ +Nachdem die Bibliotheken installiert wurdenmuss das richtige Board ausgewählt werden, damit die Arduino IDE den Sketch passend für den ESP32 kompilieren kann. \\ 
-Sind alle Einstellungen korrekt eingetragenwandelt man mit dem Button „Exportieren (.h)“ die Werte in die benötigte „Text_Messages.h“-Datei um und ersetzt diese im Verzeichnis „users/user/documents/Arduino/Bahnsteiganzeige_ESP32“. Die "Text_Messages.h" kann übrigens ohne Bedenken ersetzt werden, da das Programm automatisch ein Backup der letzten 20 Konfigurationen erstellt und die ältesten automatisch löscht. Ist die Arduino IDE in einem der beiden Standard-Verzeichnisse installiert, öffnet das Programm nach erfolgreichem Export sogar den Sketch in der Arduino IDE. Nach einem kurzen Neustart des ESP32 kann der veränderte Sketch nun per WLAN übertragen werden.  +Das geht über Werkzeuge > Board > ESP32 Arduino > DOIT ESP32 DEVKIT V1
-===== Download des ESP Sketches =====+
  
-<WRAP round box> +{{:bilder:anleitungen:bauanleitungen:740:esp32_doit_devkit_v1.png?600|}} 
-[[https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Bahnsteiganzeige_Michael.zip|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Der Sketch ist hier zu finden:\\ + 
-https://github.com/raily74/MobaLedLib/blob/main/OLED/Zugzielanzeiger/Sketch/Bahnsteiganzeige_Michael.zip \\ + 
-**Platzhalter** +Der erste Upload <wrap em>muss</wrapper USB-Kabel erfolgen, weil der ESP32 die WLAN-Daten noch nicht kennt und sich somit noch nicht im WLAN melden kann. Dazu muss unter "Werkzeuge > Port" der richtige serielle COM-Port eingestellt werden. Ab dem folgenden Upload kann hier dann auch unter Port auch die Netzwerk-Schnittstelle ausgewählt werden. Hier sieht man den ESP32 dann mit dem zuvor angegebenen ESP-Hostname.
-</WRAP>+
  
 +{{:bilder:anleitungen:bauanleitungen:740:esp32_wlan-port.png?510|}}
 ===== Steuerung per DCC ===== ===== Steuerung per DCC =====
 Der größte Clou der Zugzielanzeiger ist die Möglichkeit, den Anzeigentext vom einfahrenden Zug steuern zu lassen. Die Anzahl der benötigten DCC Adressen hängt von der Anzahl der Gleise und der Anzahl der Zugziele ab. Beides zählt der Sketch selbst und erzeugt damit die fortlaufenden Adressen.  Der größte Clou der Zugzielanzeiger ist die Möglichkeit, den Anzeigentext vom einfahrenden Zug steuern zu lassen. Die Anzahl der benötigten DCC Adressen hängt von der Anzahl der Gleise und der Anzahl der Zugziele ab. Beides zählt der Sketch selbst und erzeugt damit die fortlaufenden Adressen. 
Zeile 260: Zeile 292:
 </WRAP> </WRAP>
  
 +===== Schaltplan ===== 
 +{{:bilder:anleitungen:bauanleitungen:740:schaltplan_zza_v3.png?800|}}
anleitungen/oled/display-steuerung.1761413752.txt.gz · Zuletzt geändert: von raily74