Hallo Zusammen,
Die Schaltung steht soweit - Zugkraftanzeigen, Tacho, Oberstrom und kombinierte Fahrmotor- und Fahrdrahtspannungsanzeige können nun gesteuert werden. Hierbei werden alle bis auf erstere mit dem Zusatz einer Freilaufdiode direkt am PWM-Treiber betrieben, während die Zugkraftanzeige umpolbar sein muss. Hierfür wird in einer Schaltung das PWM-Signal zu einer Gleichspannung geglättet und auf eine bestimmte Spannung in einem symmetrischen Netzteil gezogen, sodass die Spannung zwischen Mittelabgriff und Schaltungsausgang bei einer PWM-Sättigung von 50% möglichst bei 0V liegt. Der Kleinkram wird dann prinzipiell digital kalibriert.
Im MFA befindet sich ein Arduino Mega, der die Daten über ein Ethernet-Shield empfängt und in einer eigenen Struktur adressiert über i2c an seine Clients schickt. Es soll noch jeweils einen Arduino für z.B. "LED-Anzeigen", "Leuchtmelder" und einen für die Eingabe von Daten in Zusi (z.B. LZB Leuchtmelder) geben.
Bereits am existieren und funktionieren ist die Komponente für die Drehspulinstrumente. Sie besteht aus einem Arduino Nano, der die Werte vom Mega decodiert und mithilfe von Tabellen bestehend aus Stützpunkten (Zusi-Ausgabewert -> PWM Wert) in 16bit PWM-Werte umrechnet, die dann von einem TLC59711-Treiberboard ausgegeben werden.
Die Stützpunkte lassen sich auf einem Display verändern, die Anzeige sich also kalibrieren. Wie das aussieht hier in einem kurzen Video:
https://youtu.be/gkgM2asec4k" target="_blank
Das Display bietet weitere Möglichkeiten:
-Es können stichprobenartig alle Werte, für die die Komponente zuständig ist, auf dem Display eingesehen werden
-Die Einstellung der IP des Zusi-Servers für den Mega ist beim Programmstart möglich
-Der Verbindungsstatus des Megas mit Zusi wird in Echtzeit ausgegeben
-Die Wahl zwischen Lok- und Steuerwagenmodus des Megas wird in Echtzeit angezeigt
-Kalibrierkurven für F1, F2, sowie für v-ist und v-soll mit zusätzlicher, blasserer Linearlinie zum Vergleich
-Die Auswahl der schiebenden/ führenden Lokomotive (Triebzüge sind nicht vorgesehen) kann getroffen werden (unterschiedliches Anzeigeverhalten)
Den Nano füllen damit derzeit über 1000 Zeilen Code.
Im Betrieb sieht das alles so aus:
Gero