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/01/02 06:57] (aktuell) – [Fehlerbehebung] raily74
Zeile 1: Zeile 1:
-<WRAP important 60%> 
-In Arbeit... 
-</WRAP> 
- 
 ====== 740 Display-Steuerung Zugzielanzeiger ====== ====== 740 Display-Steuerung Zugzielanzeiger ======
  
Zeile 103: Zeile 99:
  
 7) Mosfets BS170\\ 7) Mosfets BS170\\
 +<WRAP important 80%>
 +Alle, die das Bauteil-Set bei Frank bestellt haben, müssen die Mosfets entgegen der Platinenbeschriftung mit der flachen Seite nach oben einlöten.
 +Alle anderen müssen vor der Montage die Ausrichtung des erworbenen Mosfets mit einen Bauteiltester überprüfen oder es ausprobieren und die Mosfets ggf. nochmal tauschen.
 +Vielleicht empfiehlt es sich, zunächst die Mosfets BS1^ und BS2^ einzulöten und zwei Displays anzustecken. Zeigen beide den gleichen Text, sind die Mosfets verdreht.
 +</WRAP>
 +
 {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_07.jpg?600|}} {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_07.jpg?600|}}
  
Zeile 115: Zeile 117:
 10) Kondensatoren C3 und C4 (Bild 1), LEDs 1-8 (Bild 2) inkl. 3D Abstandshalter\\ 10) Kondensatoren C3 und C4 (Bild 1), LEDs 1-8 (Bild 2) inkl. 3D Abstandshalter\\
 {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10.jpg?600|}} {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10.jpg?600|}}
 +
 +<WRAP important 60%>
 +**Achtung:** Auf richtige Polung der LEDs achten. Die abgeflachte Seite ist auf der Platine nur zu erahnen, sie zeigt nach oben, wenn man die Platine wie hier gezeigt betrachtet. Der LED-Abstandhalter hat ebenfalls eine abgeflachte Seite, die wie hier im Bild gezeigt montiert werden muss.
 +</WRAP>
  
 {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10b.jpg?600|}} {{:bilder:anleitungen:bauanleitungen:oled:740:loetanleitung_10b.jpg?600|}}
Zeile 124: Zeile 130:
 Vielen Dank an Frank für die Bereitstellung der einzelnen Bilder der jeweiligen Bauschritte! Vielen Dank an Frank für die Bereitstellung der einzelnen Bilder der jeweiligen Bauschritte!
 </WRAP> </WRAP>
 +
 +==== Der erste Funktionstest ====
 +
 +Noch bevor die OLEDs abgeschlossen werden, sollte an dieser Stelle der erste Funktionstest durchgeführt werden. Das Programm schaltet nach dem Anlegen der Versorgungsspannung die acht LEDs nacheinander an, beginnend mit dem Pärchen für Gleis 4, dann 3, 2 und schließlich 1. Die beiden LEDs für Gleis 1 bleiben am Ende an. Nun sollten sich die LEDs mit dem Taster „R“ rotierend durchschalten lassen (1>2>3>4>1>…). 
  
 ===== Anschluss-Schema an OLED-Adapter ===== ===== Anschluss-Schema an OLED-Adapter =====
Zeile 131: Zeile 141:
 {{:bilder:anleitungen:bauanleitungen:oled:740:zza_idc-anschluss.png?600|}} {{:bilder:anleitungen:bauanleitungen:oled:740:zza_idc-anschluss.png?600|}}
  
 +<wrap em>Achtung:</wrap>\\
 +Werden alle vier SDA Signale (SDA1⇑, SDA1⇓, SDA2⇑ und SDA2⇓) gemeinsam über Flachbandkabel oder andere gebündelte Kabel mit einer Länge von über 60 Zentimetern übertragen, führt dies zu Interferenzen. Diese Interferenzen stören insbesondere Displays mit aktivem Lauftext massiv. Kommt es zu solch einer Störung, müssen beide Arduinos durch gleichzeitiges Drücken der Reset-Buttons oder durch Trennen der Stromversorgung neu gestartet werden.
 +
 +Um dieses Verhalten zu verhindern, müssen lediglich die Leitungen SDA1⇓ und SDA2⇓ getrennt von den anderen acht Kabel verlegt werden.
 +Liegen bspw. SDA1⇑ (Arduino 1) und SDA1⇓ (Arduino 2) in einem Kabelstrang, stören sich die SDA-Signale beider Arduinos gegenseitig und der Text gerät durcheinander.
 +
 +Die zu trennenden Signalleitungen liegen auf den Pins 9 und 10, sodass lediglich diese beiden Leitungen abseits der anderen acht Leitungen des Flachbandkabels verlegt werden müssen.
 +Das untenstehende Bild veranschaulicht diese Vorgehensweise.
 +
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_abschirmung.jpg?800|}}
 === Zweigleisiger Zugzielanzeiger === === Zweigleisiger Zugzielanzeiger ===
  
Zeile 164: Zeile 184:
  
 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 Display. Dies ist in der Regel der erste Test, den man nach dem Zusammenbau durchführt. 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 Display. Dies ist in der Regel der erste Test, den man nach dem Zusammenbau durchführt.
- 
-{{:bilder:anleitungen:bauanleitungen:oled:740:zza_sketch_gleise.png?nolink|}} 
- 
  
 ==== Texte für die Züge definieren ==== ==== Texte für die Züge definieren ====
  
 Wenn man den Arduino Sketch offen hat, sieht man oben die Reiter für die einzelnen Bestandteile. Einer davon ist die Sammlung der Anzeigentexte (TextMessages.h). Wenn man den Arduino Sketch offen hat, sieht man oben die Reiter für die einzelnen Bestandteile. Einer davon ist die Sammlung der Anzeigentexte (TextMessages.h).
 +Hier legt man 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.
 +
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_texte_ide.png?direct&800|}}
 +
  
  
 ==== DCC Adressbereich definieren ==== ==== DCC Adressbereich definieren ====
 +
 +Als nächstes den Adressbereich in der "Configuration.h" über die Arduino IDE einstellen und den Sketch auf beide Arduinos laden. Für den vollen Funktionsumfang (100 Texte) werden 56 DCC-Adressen benötigt (im gezeigten Beispiel => 355 bis 410 = 56).
 +
 +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_dcc-adressen_ide.png?direct&800|}}
 +===== Fehlerbehebung =====
 +Die Displays sind empfindlich und man muss beim Zusammenbau sehr sorgfältig arbeiten. Hier eine Auflistung der häufigsten Fehlerursachen. 
 +
 +^  Fehlerbild  ^  Ursache  ^  Behebung  ^
 +| Zwei Displays nebeneinander zeigen gleichen Text | Mosfet BS170 ist verdreht | Mit Bauteiltester wie oben beschrieben prüfen und ggf. drehen. |
 +| Display flackert | Kurzschluss zwischen den hauchdünnen Leiterbahnen des Flexkabels | Unter der Lupe mit viel Licht auf Kurzschlüsse prüfen und ggf. neu löten. |
 +| Hieroglyphen auf dem Display | Gekreuzte Signalleitungen SDA1+2⇑ und SDA1+2⇓ | Kabel möglichst parallel und ohne Kreuzen verlegen, SDA1⇑ und SDA2⇑ nicht zu dicht an SDA1⇓ und SDA2⇓ verlegen. |
 +| Display-Beleuchtung sehr schwach | Schlechte Verbindung zwischen Platine und Display | Lötverbindungen am Flexkabel prüfen und ggf. Flexkabel auf Bruch untersuchen. |
 ===== 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. 
Zeile 202: Zeile 235:
 | 111 | n+55 | Grün | Textblock 100 auf aktuellem OLED anzeigen |  | | 111 | n+55 | Grün | Textblock 100 auf aktuellem OLED 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üpfungDie 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. +===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.
  
-In einer Aktion werden die Bedingungen und die Ausführung miteinander verknüpft. +{{:bilder:anleitungen:bauanleitungen:oled:740:zza_aspekt.png?direct&800|}} 
 + 
 +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 256:
 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>
anleitungen/oled/display-steuerung.1711195243.txt.gz · Zuletzt geändert: von raily74