Hallo zusammen,
schon vor einiger Zeit habe ich mal einen Arduino-Decoder für Viessmanns Multiplexsignale gebaut, denn ich euch heute vorstellen möchte.
Der Decoder unterstützt dabei nicht nur das sanfte Auf- und Abblenden der LEDs, sondern zeigt zudem auch noch sogenannte Zwischenschaltbilder zwischen verschiedenen Signalbegriffen.
Motivation:
In meinem Bahnhof wollte ich an einer Stelle Viessmanns Signalbrücke aufstellen. Jedoch war ich nicht bereit, pro Signal noch einmal 20,- für den Decoder zu bezahlen.
Darum beschloss ich, die Decoder selber zu programmieren.
Herausforderung:
Die neuen Viessmann-Signale werden mittels Tri-State-Multiplexing angesteuert. Dabei wird zwischen jede Anschlussader in jede Richtung eine LED geschaltet. Das ermöglicht, mit 4 Drähten bis zu 12 LEDs einzeln anzusteuern.
Verschaltung der LEDs bei einem Viessmann Ausfahrsignal mit vier Anschlussdrähten
Decoderplatine
Zur Ansteuerung habe ich mir eine kleine Platine mit einem Arduino Nano (China-Klon) gelötet. Der Schaltplan basiert auf einem, den ich hier mal gefunden hatte (weiß aber nicht mehr wo).
Da nie LEDs in Reihe geschaltet sind, reichen die 5V des Arduinos als Versorgungsspannung für die LEDs aus. Die Widerstände sind auch für 5V ausgelegt.
Der selbstgelötete Decoder im Einsatz: Rechts sind Digital- und Versorgungsspannung angeschlossen, links die Signalbrücke (über die schwarzen Stecker) und der Vorsignalwiederholer.
Den Schaltplan des Decoder habe ich so einfach wie möglich gehalten.
Umsetzung im Code
Hierfür möchte ich euch eine Präsentation zeigen, die ich einst für eine GFS zum Thema gemacht hatte und für euch nun noch ein wenig angepasst habe.
Darin zeig ich euch, was es mit dem Multiplexing auf sich hat und wie das ganze funktioniert.
Anwendung:
Mit dem Arduino-Decoder lassen sich im Prinzip alle Multiplexsignale von Viessmann ansteuern. Die Anpassungen im Sketch dafür sind verhältnismäßig gering.
Hier könnt ihr die entsprechend gesteuerten Signale sehen. Der linke Vorsignalwiederholer sowie die beiden Hauptsperrsignale an der Signalbrücke werden über den Arduino-Multiplex-Decoder gesteuert.
Die anderen Signale sind konventionell verdrahtet und werden von weiteren Arduinos (wann anders vllt. mehr dazu...) gesteuert.
Und hier noch ein kleines Video dazu: Link
An der Stelle möchte ich mich auch gleich mal bei den ganzen Vielschreibern zum Thema Arduino und Modellbahn bedanken. Die MobaTools-Library von Franz-Peter habe ich in diesem Sketch ja sogar selbst verwendet.
Im Anhang findet ihr neben dem Sketch auch den Schaltplan für den Decoder und die Präsentation als Pdf.
Ich hoffe, meine Erklärungen waren etwas verständlich und ihr könnt etwas damit anfangen :)
Viele Grüße und viel Spaß
Hannes
Disclaimer: Ich weiß, dass man einiges schöner programmieren hätte können, (z.B. den Aufruf der update()-Funktion per Interrupt statt im Loop), aber hey, es funktioniert. Verbesserungsvorschläge, Kritik und Anmerkungen sind aber trotzdem natürlich erwünscht :)