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 [2024/03/23 12:00] – [Bestückung der Display-Steuerung] raily74anleitungen:oled:display-steuerung [2025/12/07 15:27] (aktuell) – [Erste Übertragung auf den ESP32] fbstr
Zeile 1: Zeile 1:
-<WRAP important 60%> +====== 740 Display-Steuerung Zugzielanzeiger v3.0 ====== 
-In Arbeit... +[[raily74@icloud.com|von Michael]]\\
-</WRAP>+
  
-====== 740 Display-Steuerung Zugzielanzeiger ======+Zur alten Anleitung (v2.1): [[display-steuerung_v2.1|zur Vorgängerplatine]] 
 +==== 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. \\
  
-Die Zugzielanzeiger haben mit der MobaLedLib an sich nichts zu tun. Sie sind ein völlig eigenständiges Projekt und werden **nicht** über den Programm Generator gesteuert. Initiiert wurden sie bereits im Dezember 2015 im Stummiforum durch [[https://www.stummiforum.de/u26221_TobiBS.html| TobiBS]]. Anfang 2019 wurde Hardi auf das Thema aufmerksam und entwickelte den vorhandenen Code zu einem optimierten Sketch weiter. Passend zum Sketch entwickelte er auch die [[anleitungen:oled:760de_2xdisplay|760 Kofferplatine]] zur Aufnahme der winzigen 0,87“-Displays sowie einen passenden Schaltplan zur Steuerung der Kofferplatinen. Hier knüpft fünf Jahre später die Display-Steuerung für Zugzielanzeiger an und führt das Projekt zu einem kompletten System+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3.jpg?600|}}
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:740_display-steuerung.png?600|}} 
  
-=====Funktionsweise der Display-Steuerung=====+==== Funktionsweise der ZZA-Steuerung v3 ====
  
-Die Display-Steuerung entstand ursprünglich als Erweiterung zur 760er Kofferplatine. Die Idee der Platine basiert dabei auf dem [[anleitungen:oled:zugzielanzeiger|ursprünglichen Schaltplan]]jedoch erweitert um einen zweiten Arduino+Über vier 8-Fach Multiplexer wechselt der ESP32 ca. alle 4 ms zum nächsten OLED Display. So benötigt er knapp 135 ms, um 32 Lauftexte zu aktualisieren. Das gelingt, weil nur das obere Viertel des Displays aktualisiert wird (Danke, Hardi). \\ **Ja, richtig gelesen:** Alle Gleise können gleichzeitig mit Lauftext versorgt werden, wenn mal wieder alle Züge mit Verspätung fahren
  
-=== Warum ein zweiter Arduino?===+Das Layout der Wannenstecker wurde beibehalten. So kann die neue Platine Plug & Play an bestehende Displays angeschlossen werden. \\ Bei zukünftigen Installationen kann auf die zweite RST-Leitung verzichtet werden. \\ Die beiden SCL Leitungen sollten wegen der Pull Up Widerstände weiterhin verwendet werden, allerdings sind sie nicht mehr bestimmten SDA Leitungen zuzuordnen. 
  
-Der ursprüngliche Schaltplan sowie der im Github zur Verfügung gestellte Sketch können mit nur einem Arduino ohne Weiteres fünf Displays ansteuern. Dabei nutzt die Schaltung mehrere Mosfets (BS170)um das jeweilige Display anzusprechenDie Displays schalten also um und verharren mit dem zuletzt empfangenen Text.  Immer auf dem aktiven Display (dessen Mosfet aktiviert ist) ist der Arduino in der Lageeinen bewegten Lauftext zu generieren. Dieser stoppt, sobald auf eines der anderen Displays umgeschaltet wird.  +Neu ist auch die Funktion zur Bildung von Display-Gruppen, wodurch mehrere Displays mit nur einem DCC Befehl dasselbe Zugziel empfangen, egalob links- oder rechtsseitige Ausrichtung\\ Was im alten Sketch der Befehl „Vorheriges/Nächstes OLED wählen“ war, wird somit zu „Vorherige/Nächste Gleisgruppe wählen“.
-Zugzielanzeiger bestehen häufig aus einem in Fahrtrichtung zeigenden und einem entgegengesetzten Monitor. Bei beiden ist die Gleisnummer jeweils außen angeschlagen und somit ist der Bildschirminhalt beider Monitore nie identisch +
-Da der Arduino aber nur auf einem Display den Lauftext generieren kann, würde die Verspätung eines einfahrenden Zuges nur auf dem Display in Fahrtrichtung angezeigt, nicht jedoch auf dem am selben Gleis angebrachten Display entgegen der Fahrtrichtung. \\+
  
-Nun kommt der zweite Arduino ins Spiel. Steuert man diesen mit denselben DCC-Befehlen, bzwnutzt man dieselben Tasten zum Umschalten der Texte, so kann der eine Arduino den Lauftext in Fahrtrichtung generieren und der zweite generiert denselben Lauftext entgegen der Fahrtrichtung. Der Sketch ist dabei bis auf die Seite der Gleisnummer auf beiden Arduinos  identisch.+Gegenüber dem Vorgänger können nun endlich alle vorhandenen OLED-Adapter verwendet werdenDazu gehören die Display-Adapter (750) in zwei- und vierfacher Ausführung sowie die Kofferplatine (760).
  
-=== Steuern zwei Arduinos also zehn Displays?=== +===== Aufbau der Platine ===== 
-Im Prinzip jaAuch wenn der Lauftext immer nur auf einem Gleis dargestellt werden kann, so nutzt diese Steuerung immerhin vier der zahlreichen Ausgänge jedes Arduinos zur Steuerung der Displays. Beide Arduinos zusammen liefern also Bildinhalte für acht Displays. Eine Platine versorgt daher zwei Bahnsteige mit jeweils zwei GleisenEin Arduino versorgt vier Displays in die eine Himmelsrichtung (▲) und der zweite Arduino die vier Displays in die andere Himmelsrichtung (▼).+Zum Aufbau gibt es nicht viel zu sagenDie Platine ist nahezu komplett vorbestücktLediglich 21 Teile müssen gelötet werden und abgesehen von der Richtung kann hier prinzipiell nichts vertauscht werden\\
  
-Soll der Lauftext zur gleichen Zeit auf zwei von vier Gleisen angezeigt werden, so muss eine Platine je Bahnsteig zum Einsatz kommen. Die Ausgänge für Bahnsteig 2 bleiben in dem Fall ungenutzt, der zweite Arduino muss trotz allem bestückt werden. Lediglich auf einige Dioden, Mosfets und Wannenstecker kann verzichtet werden (siehe Ende der Bestückungsanleitung). +**Schritt 1**\\ 
-===Ist die Display-Steuerung kompatibel mit den Kofferplatinen?=== +Als erstes wird die IC Fassung eingelötet. Dabei bitte auf die linksseitige Kerbe achten.
-**Jein!** Auch wenn die Kofferplatinen nicht dazu geeignet sind, einen beidseitigen Lauftext anzuzeigen, so ist jedoch die Display-Steuerung in der Lage, die Kofferplatinen zu betreiben.+
  
-Die Arduinos der Display-Steuerung versorgen jedes Display mit den drei Signalen RST, SCL und SDA, sowie der Versorgungsspannung. Die Kofferplatine führt bis auf SDA alles für Vorder- und Rückseite zusammen. Soll nun das Display auf der Vorderseite von einem anderen Arduino angesteuert werden als das Display auf der Rückseite, so sind die Signalleitungen RST und SCL von beiden Arduinos nötig. Das kann die Kofferplatine nicht abbilden.+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts01.jpg?600|}}
  
-Die Kofferplatine ist eine großartige Entwicklung, um das sowieso zu große Display von der noch größeren Platine zu befreienSpeziell für die Display-Steuerung wurde allerdings ein eigener OLED Adapter entwickelt, der entweder vier oder zwei Displays auf einer doppelseitigen Platine aufnimmt und so den vollen Leistungsumfang der Display-Steuerung ausreiztKofferplatine kann dieser Adapter aber nicht mehr genannt werden, da der „Griff“ beim neuen Adapter entfällt. Dazu aber mehr auf der Seite des [[anleitungen:oled:oled-adapter|OLED Adapters]]+**Schritt 2**\\ 
 +Im Anschluss kann direkt der Optokoppler eingesteckt werdenHier bitte unbedingt auf korrekte Position von Pin 1 achtenDer Punkt auf dem IC zeigt wie im Bild nach unten links.
  
-Für die Nutzung mit Kofferplatinen werden statt der 10-poligen Wannenstecker einfach 6-polige eingelötet und einige Bauteile können entfallen.\\+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts02.jpg?600|}}
  
-Soll die Platine universell eingesetzt werdensollte sie voll bestückt werdenIn dem Fall kann man eine sechsadrige Flachbandleitung wie bei der MobaLedLib gewohnt mit Plus am Pfeil einer zehnpoligen Pfostenbuchse ausrichten+**Schritt 3**\\ 
 +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:oled:740:loetanleitung_einseitig.png?600|}} 
-===== Stückliste ===== 
-Nachfolgend findet man die Stückliste  der notwendigen Bauteile inkl der Bestellnummern bei Reichelt. 
  
-<WRAP info 61%> +{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts03.jpg?600|}}
-Die Stückliste ist für die voll bestückte Variante ausgelegtMöglicherweise entfallende Bauteile oder andere Wannenstecker sind nicht berücksichtigt. +
-</WRAP>+
  
-^  Anzahl  ^  Bezeichnung  ^  Beschreibung  ^  Bestellnummer  ^  Alternativen, Bemerkungen +**Schritt 4**\\ 
-| 1 | Board | Platine | 740-Display-Steuerung | | +Das DCC-Signal wird über den kleineren grünen Stecker im Rastermaß 2,54 mm eingespeist
-| 18 | D1-D16, D17, D18 | Schottkydiode, 40 V, 1 A, DO-214AC/SMA | [[https://www.reichelt.de/schottkydiode-40-v-1-a-do-214ac-sma-b-140-f-p95199.html|B 140 F]] |  | +
-| 8 | R1-R8 | SMD-Widerstand, 1206, 150 Ohm, 250 mW | [[https://www.reichelt.de/smd-widerstand-1206-150-ohm-250-mw-1--wal-wr12x1500ftl-p346647.html|WAL WR12X1500FTL]] |  | +
-| 9 | R9-R16, R19 | SMD-Widerstand, 1206, 1 kOhm, 250mW | [[https://www.reichelt.de/smd-widerstand-1206-1-kohm-250-mw-1--wal-wr12x1001ftl-p346654.html|WAL WR12X1001FTL]] |  | +
-| 2 | R17, R18 | SMD-Widerstand, 1206, 4,7 kOhm, 250mW | [[https://www.reichelt.de/smd-widerstand-1206-4-7-kohm-250-mw-1--wal-wr12x4701ftl-p346683.html|WAL WR12X4701FTL]] |  | +
-| 2 | C1, C2 | Vielschicht-Kerko, 100nF, 50V | [[https://www.reichelt.de/vielschicht-kerko-100nf-50v-125-c-kem-x7r1206b100n-p207152.html|KEM X7R1206B100N]] |  | +
-| 2 | C3, C4 | Elko radial, 100 uF, 25 V, 105°C, low ESR | [[https://www.reichelt.de/elko-radial-100-uf-25-v-105-c-low-esr-fm-a-100u-25-p200027.html|FM-A 100U 25]] |  | +
-| 8 | BS1▲▼-BS4▲▼ | MOSFET, 60 V, 0,5 A, TO-92 | [[https://www.reichelt.de/mosfet-n-kanal-60-v-0-5-a-rds-on-5-0-ohm-to-92-bs-170-p5856.html|BS 170]] |  | +
-| 1 | LD1117v33 | LDO-Spannungsregler, 15 Vin, 3,3 Vout | [[https://www.reichelt.de/ldo-spannungsregler-15-vin-3-3-vout-950-ma-to-220-ld1117v33-p216683.html|LD1117V33]] |  | +
-| 8 | LED1▲▼-LED4▲▼ | LED 3mm, bedrahtet, gelb | [[https://www.reichelt.de/led-3mm-bedrahtet-gelb-150-mcd-60--3004y1d-ehb-a-p361589.html|3004Y1D-EHB-A]] |  | +
-| 1 | 6N137 | Optokoppler | [[https://www.reichelt.de/optokoppler-6n-137-p2858.html|6N 137]] |  | +
-| 1 | Fassung für 6N137 | IC-Sockel, 8-polig | [[https://www.reichelt.de/ic-sockel-8-polig-doppelter-federkontakt-gs-8-p8230.html|GS 8]] |  | +
-| 2 | +5V, DCC | Stiftleiste - 2-polRM 3,5 mm, 90° | [[https://www.reichelt.de/stiftleiste-2-pol-rm-3-5-mm-90--ctb932hd-2-p292574.html|CTB932HD-2]]  | Alternative: siehe nächste Zeile | +
-| 2 | +5V, DCC | Anschlussklemme, 2-pol, Ø 2 mm, RM 5,08 | [[https://www.reichelt.de/anschlussklemme-2-pol-2-mm-rm-5-08-akl-101-02-p36605.html|AKL 101-02]]  | | +
-| 6 | Leader, Follower | Wannenstecker, 10-polig | [[https://www.reichelt.de/wannenstecker-10-polig-gerade-wsl-10g-p22816.html|WSL 10G]] | |  +
-| 1 | Switch | Wannenstecker, 8-polig | [[https://www.reichelt.de/stiftwanne-8-pol-kontakte-vergoldet-2-54mm-bkl-10120552-p235689.html|BKL 10120552]] | Günstiger bei Pollin oder AliExpress | +
-| 6 | S_Text+1, S_Rotate, S_GleisX | Kurzhubtaster 6x6mm, Höhe: 20,0mm | [[https://de.aliexpress.com/item/4001166999847.html|Schalter Dip 6x6x20]] | | +
-| 4 | A1, A2 | Buchsenleiste, 15-pol | [[https://www.reichelt.de/20pol-buchsenleiste-gerade-rm-2-54-h-8-5mm-bl-1x20g8-2-54-p51827.html|BL 1X20G8 2,54]] | <wrap em>Diese Buchsenleiste muss leider geteilt werden. \\ Bei [[https://www.conrad.de/de/p/econ-connect-buchsenleiste-standard-anzahl-reihen-1-polzahl-je-reihe-15-blg1x15-1-st-1492307.html|Conrad]] ist auch die 15-polige Variante erhältlich.</wrap>+
-| 2 | A1, A2 | Arduino Nano | [[https://www.reichelt.de/arduino-nano-v3-atmega-328-mini-usb-arduino-nano-p142943.html| ARDUINO NANO]] | Günstiger bei AliExpress |+
  
----- +{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts04.jpg?600|}}
-<WRAP pagebreak></WRAP>+
  
-=== Buchsenleiste teilen === +**Schritt 5**\\ 
-Die 20poligen Buchsenleiste für A1 und A2 wird per Säge auf die notwendigen Teilstücke abgelängt (jeweils etwa 1mm hinter dem letzten benötigten Bein absägen)Aus einer 20poligen Leiste wird eine 15-polige Buchsenleisten erstellt.+Um die Buchsenleisten rechtwinklig und plan einzulöten, montiert man sie am besten mit eingestecktem ESP32\\ 
 +Nachdem der jeweils vordere, mittlere und hintere PIN der Buchsenleisten gelötet ist, wird dieser entfernt und die restlichen Lötpunkte verzinnt
  
-{{bilder:anleitungen:bauanleitungen:100de:100-de_02a-hauptplatine_basis_buchsenleiste_15-3.jpg?200|}}+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts05.jpg?600|}}
  
----- +**Schritt 6**\\ 
-<WRAP pagebreak></WRAP>+Bei den Wannensteckern empfiehlt es sich, zunächst nur jeweils einen Kontakt zu löten. So kann man nach einer Sichtkontrolle die einzelnen Stecker durch Erhitzen dieses Pins noch korrigieren. \\ 
 +Im Anschluss verzinnt man die restlichen Pins. Der 6-polige Wannenstecker ist zur Ansteuerung per CAN vorgesehen und derzeit noch ohne Funktion. Um das Gehäuse später nicht anpassen zu müssen, wird er hier vorsorglich eingelötet.
  
-===== Bestückung der Display-Steuerung =====+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts06.jpg?600|}}
  
-Es empfiehlt sich, folgende Reihenfolge bei der Bestückung einzuhalten: \\+**Schritt 7**\\ 
 +Nach dem Einlöten der sechs Taster ist Vorsicht geboten. Die langen Hebel neigen abzubrechen. Ohne entsprechendes Gehäuse sollten hier Taster mit kürzerem Hub verwendet werden.  
  
-Sofern nicht die SMD-vorbestückte Platine erworben wurde, müssen zunächst die SMD-Bauteile aufgelötet werden.+{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts07.jpg?600|}}
  
-1) Dioden D1 bis D18\\ +**Schritt 8**\\ 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_01.jpg?600|}}+Der letzte Schritt ist das Einstecken des Mikrocontrollers
  
-2) Widerstände R9 bis R16 und R19 (rot) sowie Widerstände R17 und R18 (grün)\\ +{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_parts08.jpg?600|}}
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_02.jpg?600|}}+
  
-3) Widerstände R1 bis R8\\ +==== Anschluss der Displays ====
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_03.jpg?600|}}+
  
-4) Keramikkondensatoren C1 und C2\\ +**Pin-Belegung des Wannensteckers**\\
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_04.jpg?600|}}+
  
-**Nun geht es mit der Bestückung der THT-Bauteile weiter:**+{{bilder:anleitungen:bauanleitungen:740:zza_v3_idc-anschluss.png?400 |}} \\ \\ \\
  
-5IC-Fassung für Optokoppler 6N137\\ +Der Wannenstecker ist für den Anschluss eines Vierfach-Displays optimiert. \\ 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_05.jpg?600|}}+Hier teilen sich dann vier OLEDs auf einem OLED-Adapter (750die Anschlüsse Plus, Minus, Rest und SCL. \\ 
 +\\ 
 +Die RST-Pins sind identisch. Es reicht, wenn einer davon zum OLED-Adapter (750) geführt wird. \\ 
 +Die SCL-Pins haben eigene Pull Up Widerstände und sollten separat zum OLED-Adapter (750) geführt werden\\ 
 +SCL0 und SCL1 sind keinen bestimmten SDA-Pins zugeordnet. Die Reihenfolge spielt daher keine Rolle.\\ 
 +\\ 
 +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). \\ 
 +\\
  
-6) Spannungsregler LD1117v33 mit Wärmeleitpaste, Schraube M3x5 und Mutter M3 anbringen, dann löten\\ +=== Reihenfolge der Displays ===
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_06.jpg?600|}}+
  
-7) Mosfets BS170\\ +Dank der Gleisgruppen ist es bei der neuen Steuerung nicht entscheidend, an welchen SDA-Pin die Displays angeschlossen werden. \\ 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_07.jpg?600|}}+Es empfiehlt sich lediglich, alle Displays auf dieselbe Weise zu verkabeln, weil dann die Zuordnung im TextMessages Tool einfacher wird. \\ 
 +Das folgende Schema verdeutlicht die Vorgehensweise\\ 
 +In jedem Wannenstecker gibt es für vier Displays vier SDA-Anschlüsse (0 bis 3). Mit jedem weiteren Wannenstecker erhöht sich die Nummer des Pins um vier. \\ 
 +Somit stehen 32 SDA-Anschlüsse zur Verfügung (0 bis 31).
  
-8) Anschlussklemmen +5V und DCC (Bild 1) und Buchsenleisten A1 und A2 (Bild 2) \\ +{{:bilder:anleitungen:bauanleitungen:740:740_display-steuerung_v3_sda-reihenfolge.jpg?800|}} 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_08.jpg?600|}}+==== Warum diese Lösung und nicht MQTT? ====
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_08b.jpg?600|}}+MQTT gilt als moderne, serverbasierte Lösung, bei der das Steuerungsprogramm (z. B. RocRail) die Befehle an einen MQTT Broker sendet (typischerweise ein Raspberry Pi), auf dem die Verwaltung der Zugziele läuft. \\ Sobald der Broker einen Befehl von der Steuerungssoftware bekommt, schickt er die Daten zum ESP
  
-9) 10-polige Wannenstecker Leader + Follower (rot), 8-poliger Wannenstecker Switch (grün)\\ +**<color #22b14c>Die Vorteile von MQTT</color>** 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_09.jpg?600|}}+  * Die Zugziele müssen nicht im Arduino Sketch gepflegt werden. Sie werden bequem über die Weboberfläche WYSIWYG eingepflegt. 
 +  * Deutsche Umlaute können direkt eingegeben werden. 
 +  * Es ist nur ein einziger Befehl der Steuerungssoftware an den MQTT Broker nötig, um das Zugziel an das richtige Gleis zu senden
  
-10) Kondensatoren C3 und C4 (Bild 1), LEDs 1-8 (Bild 2) inkl3D Abstandshalter\\ +**<color #ed1c24>Die Nachteile von MQTT </color>** 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10.jpg?600|}}+  * Der Installationsaufwand stellt für den ungeübten Bastler mit wenig IT-Kenntnissen eine zusätzliche Hürde dar
 +  * Das Umschalten der Displays setzt zwingend eine Steuerungssoftware (z. B. RocRail) voraus oder einen PC in unmittelbarer Nähe, zum Schalten per Weboberfläche.
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10b.jpg?600|}}+Als ich Ende 2023 mit diesem Projekt begann, war nur RocRail in der Lage, MQTT Nachrichten zu senden. \\ Der per DCC steuerbare Arduino Sketch war also schon damals universeller einsetzbar, wenn auch noch mit vielen Einschränkungen verbunden. \\ Doch mit der ZZA Steuerung v3 sind die meisten dieser Einschränkungen Geschichte
  
-11) Taster\\ +**<color #22b14c>Die Vorteile des Sketchs</color>** 
-{{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_11.jpg?600|}}+  * Steuerbar per serieller Schnittstelle, DCC Handregler und Steuerungssoftware. 
 +  * Kein zusätzlicher Server nötig. 
 +  * Steuerbar mit iTrain (Aktionen), RocRail (ergänzen?), TrainController Gold (Bahnwärter) und WinDigipet (Stellwerkswärter) 
 +  * Bis zu 32 OLED Displays mit einer Steuerung möglich <color #22b14c>**(NEU ab v3)**</color> 
 +  * Deutsche Umlaute können direkt eingegeben werden. <color #22b14c>**(NEU ab v3)**</color> 
 +  * Nahezu unbegrenzte Anzahl der Zugziele <color #22b14c>**(NEU ab v3)**</color> 
 +  * Bequeme Eingabe der Zugziele inkl. Suchfunktion, Lokverwaltung und Steuerbefehlen <color #22b14c>**(NEU ab v3)**</color> 
 +  * Bequemer Upload des geänderten Sketchs per WLAN <color #22b14c>**(NEU ab v3)**</color> 
 +  * Über 200 vordefinierte Zugziele als Beispielsammlung <color #22b14c>**(NEU ab v3)**</color>
  
-<WRAP round info 50%> +**<color #ed1c24>Die Nachteile des Sketchs</color>** 
-Vielen Dank an Frank für die Bereitstellung der einzelnen Bilder der jeweiligen Bauschritte! +  * Es sind immer zwei direkt aufeinanderfolgende DCC-Befehle nötig, um das richtige Gleis zu wählen und den passenden Text zu senden. Das können nicht alle Steuerungen. =Link 
-</WRAP>+
  
-===== Anschluss-Schema an OLED-Adapter =====+==== Das TextMessages Tool ==== 
 +Das TextMessages Tool unterstützt bei der Eingabe der erforderlichen Daten. Dazu gehören in erster Linie die Zugziele, WLANund 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. 
  
-=== Pin-Belegung des Wannensteckers ===+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.
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:zza_idc-anschluss.png?600|}}+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/
  
-=== Zweigleisiger Zugzielanzeiger ===+**Zugziele**\\ 
 +{{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab1.png?800|}}
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:740_display-steuerung_anschluss_2x.png?600|}}+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
  
-Das oben gezeigte Anschluss-Schema gilt für alle sechs WannensteckerAuf diese Weise können bis zu 24 Displays an die Steuerung abgeschlossen werden+Die DCC Adressen werden vom Sketch fortlaufend vergebenDaher 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.
  
-=== Eingleisiger Zugzielanzeiger ===+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. 
  
 +^ Gleise ^ DCC erstes Ziel ^
 +| bis zu 2 | n+4 |
 +| bis zu 4 | n+6 |
 +| bis zu 6 | n+8 |
 +| … | |
 +| bis zu 32 | n+34 |
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:740_display-steuerung_anschluss_1x.png?600|}} +**Gleis Zuordnung**\\ 
-===== Download des Arduino Sketches =====+{{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab2.png?800|}}
  
-<WRAP round box 80%> +Der Reiter „Gleis Zuordnung“ ist so aufgebaut, dass er die Gleisgruppen selbst vorgibtSo ist keine Anpassung der Reihenfolge im Sketch mehr erforderlichJede Doppelspalte entspricht einem GleisWerden 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 bliebenMit der Ausrichtung [L/R] wird angegeben, ob die Gleisnummer links oder rechts im Display erscheinen soll
-[[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 \\ +
-</WRAP>+
  
-===== Erste Schritte mit dem Sketch =====+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.
  
-<WRAP round tip 60%> +Zum besseren Verständnis hier ein Beispiel für drei Gleisedie am Empfangsgebäude des Bahnhofs liegenGleis 1 wird mit einem doppelseitigen Einzeldisplay bedient, Gleis 2 und 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.
-Es empfiehlt sich, Hardis ursprünglichen Beitrag im Stummiforum zu lesenbevor man in das Editieren des Sketchs einsteigt.\\ +
-[[https://www.stummiforum.de/t131472f21-Zugzielanzeiger-f-r-den-Bahnsteig-mit-Arduino-3.html#msg1939102|Zugzielanzeiger für den Bahnsteig mit Arduino]] +
-</WRAP>+
  
-==== Gleise definieren ==== +{{:bilder:anleitungen:bauanleitungen:740:zza_sda-anschluss.jpg?480|}}
-Der ursprüngliche Sketch wurde für die Verwendung mit der Display-Steuerung leicht modifiziertStatt der ursprünglichen fünf Taster verwendet die hier gezeigte Platine sechs Taster und vier statt drei Displays.\\ +
-Zudem arbeitet die Platine direkt mit zwei Arduinos, welche unterschiedliche Sketches benötigen. Da dieser modifizierte Sketch speziell auf die hier gezeigte Platine abgestimmt ist, steht er alternativ (bald) im Github zum Download zur Verfügung.\\+
  
-Ohne Anpassung des Sketches hätten die anzuzeigenden Texte (TextMessages.h) zudem immer in zwei Programmen gepflegt werden müssen - einmal für die vorwärts und einmal für die rückwärts gerichteten Displays. In der Praxis wird man nicht alle 100 Texte auf einmal pflegen, sondern immer dann, wenn einem ein besonderer Zug in die Finger gerät und man mit diesem spielt. Das ist der richtige Zeitpunkt zur Anlage seines Textes. Das hätte das Einpflegen der Texte und das Programmieren der Arduinos zum Geduldsspiel gemacht. 
  
-Hier greift der Sketch nun auf eine Besonderheit der Platine zurück. Beide Arduinos sind bis auf einen Unterschied identisch angeschlossen. Arduino 1 wird an Pin "A0" auf GND gezogen. Das fragt der Sketch ab und setzt die Gleisnummer automatisch nach links oder nach rechts.+**Einstellungen**\\ 
 +{{:bilder:anleitungen:bauanleitungen:740:zza_app_v4_tab3.png?800|}}
  
-Bei der Ersteinrichtung müssen die auskommentierten Zeilen nach Wunsch aktiviert werden, indem die beiden Schrägstriche in der jeweiligen Zeile entfernt werden (1)Der Sketch ist zunächst für ein OLED Panel konfiguriert und eignet sich in der Form für einen ersten Test mit einem über ein Breadboard angeschlossenen DisplayDies ist in der Regel der erste Testden man nach dem Zusammenbau durchführt.+Im Reiter Einstellungen werden als erstes die WLAN Zugangsdaten eingegebenum 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 daherdie ZZA Steuerung über ein Relais schaltbar zu machen, sofern man die Übertragung per WLAN nutzen möchte
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:zza_sketch_gleise.png?nolink|}}+Mit der ersten DCC Adresse legt man den Startpunkt für die Steuerung fest. Diese muss selbstverständlich mit den Einstellungen im Steuerungsprogramm übereinstimmen
  
 +Die Option „Zufall“ ist standardmäßig deaktiviert. Wer das zufällige Umschalten der DCC Steuerung vorzieht, kann das hier aktivieren und auch die minimale und maximale Zeit bis zum nächsten Umschalten einstellen. Die DCC Steuerung **kann** in dem Fall deaktiviert werden. 
  
-==== Texte für die Züge definieren ====+Die Gleisgruppen sind standardmäßig aktiviert. Ohne diese müsste jedes OLED Display einzeln aktiviert werden, um einen Text zu übertragen. Für jedes doppelseitige Display wären somit vier aufeinanderfolgende DCC Befehle erforderlich. Mit aktiven Gleisgruppen werden alle OLEDs eines Gleises gleichzeitig aktualisiert. 
  
-Wenn man den Arduino Sketch offen hatsieht man oben die Reiter für die einzelnen BestandteileEiner davon ist die Sammlung der Anzeigentexte (TextMessages.h).+Die Display-Rotation ist standardmäßig aktiviertweil es zum einen der Ausrichtung auf der Adapterplatine (750) entspricht und zum anderen die schnellste Aktualisierung der Displays gewährleistetDie 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 =====
  
-==== DCC Adressbereich definieren ====+<WRAP round box> 
 +[[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> 
 + 
 +==== Erste Übertragung auf den ESP32 ==== 
 + 
 +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 übertragen. Nach 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) 
 + 
 +Nachdem die Bibliotheken installiert wurden, muss das richtige Board ausgewählt werden, damit die Arduino IDE den Sketch passend für den ESP32 kompilieren kann. \\ 
 +Das geht über Werkzeuge > Board > ESP32 Arduino > DOIT ESP32 DEVKIT V1 
 + 
 +{{:bilder:anleitungen:bauanleitungen:740:esp32_doit_devkit_v1.png?600|}} 
 + 
 + 
 +Der erste Upload <wrap em>muss</wrap> per 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. 
 + 
 +{{: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. +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.  
 + 
 +**Achtung**\\ 
 +Zur automatischen Steuerung sind die Befehle „Gleisgruppe x wählen“ und „Textblock x auf aktueller Gleisgruppe anzeigen“ wichtig. Die folgende Tabelle zeigt ein Beispiel mit vier Gleisgruppen. Mit nur zwei statt vier Gleisgruppen würden die Zeilen 6/7 und 10/11 entfallen und der erste direkte Textblock stünde in Zeile 8 statt in 12. Mit fünf Gleisgruppen stünde der erste direkte Textblock in Zeile 16. Die Zeilen 9 und 15 wären leer, weil die sechste Gleisgruppe nicht belegt ist und bei zwei Adressen die Zustände „grün“ nicht verwendet würden. Das ist zu bedenken, wenn man im TextMessages Tool die erste DCC Adresse vergibt und die Startadresse für die direkten Textblöcke im Reiter „Zugziele“ festlegt
  
 ^  Aspekt*  ^  DCC-Adr.  ^  Zustand  ^  Funktion  ^   Bemerkungen  ^ ^  Aspekt*  ^  DCC-Adr.  ^  Zustand  ^  Funktion  ^   Bemerkungen  ^
-| 0 | n+0 | Rot | Vorangegangenen Textblock auf aktuellem OLED Panel anzeigen | wird zur Automatiksteuerung nicht benötigt | +| 0 | n+0 | Rot | Vorangegangenen Textblock auf aktueller Gleisgruppe anzeigen | wird zur Automatiksteuerung nicht benötigt | 
-| 1 | n+0 | Grün | Nächsten Textblock auf aktuellem OLED Panel anzeigen | wird zur Automatiksteuerung nicht benötigt | +| 1 | n+0 | Grün | Nächsten Textblock auf aktueller Gleisgruppe anzeigen | wird zur Automatiksteuerung nicht benötigt | 
-| 2 | n+1 | Rot | Vorangegangenes OLED Panel auswählen | wird zur Automatiksteuerung nicht benötigt | +| 2 | n+1 | Rot | Vorangegangene Gleisgruppe wählen | wird zur Automatiksteuerung nicht benötigt | 
-| 3 | n+1 | Grün | Nächstes OLED Panel auswählen | wird zur Automatiksteuerung nicht benötigt | +| 3 | n+1 | Grün | Nächste Gleisgruppe wählen | wird zur Automatiksteuerung nicht benötigt | 
-| 4 | n+2 | Rot | Nächsten Textblock auf OLED 1 anzeigen | Wichtige Funktion nach Verlassen von Gleis 1 | +| 4 | n+2 | Rot | Nächsten Textblock auf Gleisgruppe 1 anzeigen | Wichtige Funktion nach Verlassen von Gleis 1 | 
-| 5 | n+2 | Grün | Nächsten Textblock auf OLED 2 anzeigen | Wichtige Funktion nach Verlassen von Gleis 2 |  +| 5 | n+2 | Grün | Nächsten Textblock auf Gleisgruppe 2 anzeigen | Wichtige Funktion nach Verlassen von Gleis 2 |  
-| 6 | n+3 | Rot | Nächsten Textblock auf OLED 3 anzeigen | Wichtige Funktion nach Verlassen von Gleis 3 | +| 6 | n+3 | Rot | Nächsten Textblock auf Gleisgruppe 3 anzeigen | Wichtige Funktion nach Verlassen von Gleis 3 | 
-| 7 | n+3 | Grün | Nächsten Textblock auf OLED 4 anzeigen | Wichtige Funktion nach Verlassen von Gleis 4 | +| 7 | n+3 | Grün | Nächsten Textblock auf Gleisgruppe 4 anzeigen | Wichtige Funktion nach Verlassen von Gleis 4 | 
-| 8 | n+4 | Rot | OLED auswählen | Wird als erstes von einfahrendem Zug auf Gleis 1 ausgelöst | +| 8 | n+4 | Rot | Gleisgruppe wählen | Wird als erstes von einfahrendem Zug auf Gleis 1 ausgelöst | 
-| 9 | n+4 | Grün | OLED auswählen | Wird als erstes von einfahrendem Zug auf Gleis 2 ausgelöst | +| 9 | n+4 | Grün | Gleisgruppe wählen | Wird als erstes von einfahrendem Zug auf Gleis 2 ausgelöst | 
-| 10 | n+5 | Rot | OLED auswählen | Wird als erstes von einfahrendem Zug auf Gleis 3 ausgelöst | +| 10 | n+5 | Rot | Gleisgruppe wählen | Wird als erstes von einfahrendem Zug auf Gleis 3 ausgelöst | 
-| 11 | n+5 | Grün | OLED auswählen | Wird als erstes von einfahrendem Zug auf Gleis 4 ausgelöst |  +| 11 | n+5 | Grün | Gleisgruppe wählen | Wird als erstes von einfahrendem Zug auf Gleis 4 ausgelöst |  
-| 12 | n+6 | Rot | Textblock 1 auf aktuellem OLED anzeigen | Wird anschließend mit Verzögerung (<1s) an das aktuelle Display gesendet | +| 12 | n+6 | Rot | Textblock 1 auf aktueller Gleisgruppe anzeigen | Wird anschließend mit Verzögerung (<1s) an das aktuelle Display gesendet | 
-| 13 | n+6 | Grün | Textblock 2 auf aktuellem OLED anzeigen |  | +| 13 | n+6 | Grün | Textblock 2 auf aktueller Gleisgruppe anzeigen |  | 
-| 14 | n+7 | Rot | Textblock 3 auf aktuellem OLED anzeigen |  | +| 14 | n+7 | Rot | Textblock 3 auf aktueller Gleisgruppe anzeigen |  | 
-| 15 | n+7 | Grün | Textblock 4 auf aktuellem OLED anzeigen |  | +| 15 | n+7 | Grün | Textblock 4 auf aktueller Gleisgruppe anzeigen |  |
-| 16 | n+8 | Rot | Textblock 5 auf aktuellem OLED anzeigen |  | +
-| 17 | n+8 | Grün | Textblock 6 auf aktuellem OLED anzeigen |  | +
-| 18 | n+9 | Rot | Textblock 7 auf aktuellem OLED anzeigen |  | +
-| 19 | n+9 | Grün | Textblock 8 auf aktuellem OLED anzeigen |  |+
 | … | | … |
-| 110 | n+55 | Rot | Textblock 99 auf aktuellem OLED anzeigen |  | +| 110 | n+55 | Rot | Textblock 99 auf aktueller Gleisgruppe anzeigen |  | 
-| 111 | n+55 | Grün | Textblock 100 auf aktuellem OLED anzeigen |  |+| 111 | n+55 | Grün | Textblock 100 auf aktueller Gleisgruppe anzeigen |  |
  
-Mit der oben gezeigten Tabelle ist das Erstellen einer Regel ganz einfach. Zunächst legt man im Arduino Sketch im Reiter TextMessages.h“ einen passenden Text für den Zug seiner Wahl an. Dabei empfiehlt es sich, die Beispieltexte auszukommentieren oder bei Nichtgebrauch zu löschen. Texte sollten unbedingt von 1 bis 100 fortlaufend ergänzt werden und nicht im Nachgang sortiert werden. In den meisten Fällen wird man den soeben angelegten Text mit seiner Zeilennummer einem Zug zuweisen. Ergänzt man nachträglich oberhalb dieser Zeile einen weiteren Text oder sortiert die Texte um, gehen diese direkten Verknüpfungen aus Zug und Zeilennummer verloren+Mit der oben gezeigten Tabelle ist das Erstellen einer Regel ganz einfach. Die Verknüpfung wird hier am Beispiel von iTrain gezeigt. Zur Erstellung einer Wenn/Dann-Regel“ in anderen Programmen muss deren Anleitung zu Rate gezogen werden.
  
-Nun geht es an die eigentliche Verknüpfung. Die Verknüpfung wird hier am Beispiel von iTrain gezeigt. Zur Erstellung einer „Wenn/Dann-Regel“ in anderen Programmen muss deren Anleitung zu Rate gezogen werden. +===== Verwendung im Steuerungsprogramm =====
  
-In einer Aktion werden die Bedingungen und die Ausführung miteinander verknüpft. +==== iTrain ==== 
 +**Neuen Aspekt* als Zubehör in iTrain definieren**\\ 
 +  * Im Zubehöreditor von iTrain (Strg+F8) wird ein neues Zubehör vom Typ "Aspekt" erstellt. Diesem gibt man einen frei wählbaren, sinnvollen Namen (z.B. "ZZA Hauptbahnhof" oder wie im Bild "ZZA0"). 
 +  * Als Adresse wählt man "Bereich (1...N)" und trägt bei 1 die zuvor in der Arduino IDE definierte Adresse "355" und bei N die Adresse 410 ein. Es werden automatisch 56 DCC Adressen reserviert. 
 +  * Als nächstes müssen alle 112 Aspekte aktiviert werden. Ich kenne keinen Weg, wie man alle auf einmal aktivieren kann. Am schnellsten geht es daher, mit den Pfeiltasten zur zweiten Zelle in der Spalte "Aktiviert" zu navigieren und die Leertaste zu drücken. Dann kann man im Wechsel den Pfeil nach unten und die Leertaste drücken, bis alle 112 Aspekte aktiviert sind. 
 +  * Hat man bis hierher alles richtig gemacht, sollte der Zustand "Aspekt A0" auf Ausgang "1 = 355 : Grün" liegen und "Aspekt A1" auf Ausgang "2 = 355 : Rot". Wir benötigen es aber genau umgekehrt. "Aspekt A0" muss auf Ausgang "2 = 355 : Rot" und "Aspekt A1" auf Ausgang "1 = 355 : Grün". Das Vertauschen ist einfach. Man wählt zunächst den "Aspekt A0" per Mausklick aus, dann bei gedrückter Umschalt-Taste (Shift) den letzten Aspekt ("Aspekt A111") und drückt die Taste "S". Alternativ kann man über die rechte Maustaste das Kontextmenü aufrufen und "Vertausche die Ausgänge (S)" wählen. 
 +  * Wer jetzt noch die Muse hat, kann die vorgegebenen Bezeichnungen "Aspekt A0" bis "Aspekt A111" in der Spalte "Zustand" per Doppelklick umbenennen. Hier empfiehlt es sich, die Namen der Funktion zu verwenden. Diese befinden sich im MobaLedLib-Wiki. Das Umbenennen muss nur einmal gemacht werden. Für eine zweite Display-Steuerung mit anderem Adress-Bereich kann das Zubehör "ZZA0" kopiert werden. Im Anschluss kann einfach ein anderer Adressbereich für das Duplikat definiert werden. 
 + 
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_aspekt.png?direct&800|}} 
 + 
 +**Aktion mit Bedingungen erstellen**\\ 
 +In einer Aktion werden nun die Bedingungen und die Ausführung miteinander verknüpft. 
  
 Beispiele für die Bedingung: \\ Beispiele für die Bedingung: \\
Zeile 216: Zeile 253:
 Alle oben genannten Bedingungen sollten in einer „Und-Bedingung“ erfasst werden, sodass nur ausgeführt wird, wenn alle Anfragen mit „Ja“ beantwortet werden.  Alle oben genannten Bedingungen sollten in einer „Und-Bedingung“ erfasst werden, sodass nur ausgeführt wird, wenn alle Anfragen mit „Ja“ beantwortet werden. 
  
-Die Ausführung schaltet lediglich zwei DCC Adressen. Auch hier ein Beispiel: An Gleis 3 soll der Text Nr. angezeigt werden. Dazu wird zunächst die DCC Adresse n+5 auf Rot gesetzt (entspricht Aspekt 10) und mit einer kurzen Verzögerung die Adresse n+auf Grün (entspricht Aspekt 17). +Die Ausführung schaltet lediglich zwei DCC Adressen. Auch hier ein Beispiel: 
 +An Gleis 3 soll der Text Nr. angezeigt werden. Dazu wird zunächst die DCC Adresse n+5 auf Rot gesetzt (entspricht Aspekt 10) und mit einer kurzen Verzögerung die Adresse n+auf Rot (entspricht Aspekt 12). 
 +Im folgenden Beispiel wird für den Zug "DB642" die Bedingung definiert, dass der Zug rückwärts fahrend den Block "Hbf_EN" in Richtung Bahnhof belegt und die Weiche "Hbf_G3N" auf gerade steht. 
 + 
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_itrain-aktion_wenn.png?direct&800|}} 
 + 
 +Sind alle vier Bedingungen erfüllt, wird der Aspekt "ZZA0" auf den Zustand "10 (OLED3 auswählen)" und mit einer Sekunde Verzögerung auf den Zustand "12 (Textblock 1 auf aktuellem OLED anzeigen)" eingestellt. Das sorgt im Hintergrund dafür, dass die angeschlossene Zentrale die DCC-Adresse 360 auf Rot setzt und eine Sekunde später die DCC-Adresse 361 auf Rot. Der Arduino interpretiert diese beiden Signale, schaltet auf Display 3 um und zeigt dort Text 1 an. Für den vorwärts fahrenden "DB642" wählt man beispielsweise Zustand "13 (Textblock 2 auf aktuellem OLED anzeigen)". Auf Gleis 4 wählt man Zustand 14 und 15. So fährt derselbe Zug nicht immer zum selben Ziel. 
 + 
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_itrain-aktion_dann.png?direct&800|}}
  
 <WRAP round info 80%> <WRAP round info 80%>
-*) Der Aspekt ist eine spezielle Funktion in iTrain. Dazu wird ein beliebiger DCC Adressbereich mit maximal 128 Adressen in einen virtuellen „Drehschalter“ mit bis zu 256 Schaltstellungen verwandelt. Das macht das Senden der Display- und Textwahl einfacher. Die Programme WinDigipet, TrainController und RocRail werden ähnliche Möglichkeiten bieten, wenn auch unter anderem Namen. \\+*) Der Aspekt ist eine spezielle Funktion in iTrain. Dazu wird ein beliebiger DCC Adressbereich mit maximal 128 Adressen in einen virtuellen „Drehschalter“ mit bis zu 256 Schaltstellungen verwandelt. Das macht das Senden der Display- und Textwahl einfacher. Die Programme WinDigipet, TrainController und RocRail werden ähnliche Möglichkeiten bieten, wenn auch unter anderem Namen. Zur Not kann auch einfach die jeweilige DCC-Adresse als Ausführung gesendet werden.\\
 Hinweise zur Vorgehensweise dieser Programme bitte gern im Forum posten.  Hinweise zur Vorgehensweise dieser Programme bitte gern im Forum posten. 
 </WRAP> </WRAP>
 +
 +
 +==== WinDigipet ====
 +Ich bitte um eure Unterstützung
 +
 +==== Train Controller ====
 +Ich bitte um eure Unterstützung
 +
 +==== RocRail====
 +Ich bitte um eure Unterstützung
  
 ---- ----
 <WRAP pagebreak></WRAP> <WRAP pagebreak></WRAP>
  
-===== 3D-Gehäuse - Display-Steuerung =====+===== 3D-Gehäuse - ZZA-Steuerung =====
 Eignung für 3D-Drucker: [[3d_druck:eignung|{{bilder:vorlagen:fdm_4.png?120|FDM sehr gut geeignet}}]] [[3d_druck:eignung|{{bilder:vorlagen:sla_3.png?120|SLA geeignet}}]]\\ Eignung für 3D-Drucker: [[3d_druck:eignung|{{bilder:vorlagen:fdm_4.png?120|FDM sehr gut geeignet}}]] [[3d_druck:eignung|{{bilder:vorlagen:sla_3.png?120|SLA geeignet}}]]\\
  
-<WRAP round box 60%>+{{:bilder:anleitungen:bauanleitungen:740:740_zza_3_3d.jpg?600|}} 
 + 
 +<WRAP round box>
 [[https://github.com/Hardi-St/MobaLedLib_Docu/tree/master/3D_Daten_fuer_die_MobaLedLib/Gehaeuse-740_Display-Steuerung_Zugzielanzeiger|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Die Druckdaten sind hier zu finden:\\ [[https://github.com/Hardi-St/MobaLedLib_Docu/tree/master/3D_Daten_fuer_die_MobaLedLib/Gehaeuse-740_Display-Steuerung_Zugzielanzeiger|{{:bilder:icons:github-mark.png?nolink&50 |}}]]Die Druckdaten sind hier zu finden:\\
 https://github.com/Hardi-St/MobaLedLib_Docu/tree/master/3D_Daten_fuer_die_MobaLedLib/Gehaeuse-740_Display-Steuerung_Zugzielanzeiger \\ https://github.com/Hardi-St/MobaLedLib_Docu/tree/master/3D_Daten_fuer_die_MobaLedLib/Gehaeuse-740_Display-Steuerung_Zugzielanzeiger \\
 +**Platzhalter**
 </WRAP> </WRAP>
  
-{{:bilder:anleitungen:bauanleitungen:oled:740:740_gehaeuse.jpg?600|}} 
 ===== Schaltplan ===== ===== Schaltplan =====
- +{{:bilder:anleitungen:bauanleitungen:740:schaltplan_zza_v3.png?800|}}
-{{:bilder:anleitungen:bauanleitungen:oled:740:schematic_740.png?1000|}}+
anleitungen/oled/display-steuerung.1711195243.txt.gz · Zuletzt geändert: von raily74