Selectrix Arduino

Mit Hilfe eines Arduinos kann man recht einfach das Selectrix Signal dekodieren. (siehe auch den entsprechenden Artikel in der Digitalen Modellbahn).

Um den SX-Bus an den Arduino anzuschliessen reicht ein sehr einfaches Interface mit einer 5-poligen Buchse und 2 Widerständen:

sx-if-arduino

Das Selectrix Taktsignal (DIN-Stecker PIN 1 – auch T0 genannt) wird über einen 27k Widerstand an Arduino Pin D2 geführt (durch die Flanke des Taktsignals wird der Interrupt INT0 ausgelöst), das Datensignal (von der Zentrale, DIN Stecker PIN 4 -T1 genannt) wird auf den PIN D4 geführt. Die Spannungsversorgung für den Arduino kommt über die USB Buchse vom PC. Achtung, auf Pin3 liegen 20 Volt!

Mit einem Widerstand von 150 Ohm kann man auch die Rückrichtung zur Zentrale einbeziehen, d.h. mit dem Arduino Werte auf den SX Bus schreiben. Achtung: nur mit Selectrix Anlage verbinden, wenn der Computer eingeschaltet ist, d.h. der Arduino mit Spannung versorgt ist. Sonst ist der 150 Ohm Widerstand zusammen mit den Schutzdioden des ATmega ein (fast) Kurzschluss für das Datensignal (Rückrichtung zur Zentrale) des SX Busses.

Aufbau mit Arduino Proto-Shield:

Um die Einbindung in eigene Arduino Programme zu erleichtern, wurde eine „SX“ Bibliothek zusammengestellt – die auch ein paar Beispielprogramme enthält. „Entzippen“ Sie die Biblithek, speichern Sie sie unter dem „libraries“ Folder und starten Sie die Arduino IDE neu.

Download der Software jetzt von github, siehe Arduino Libs auf GitHub (GPL) Es gibt 3 Versionen, eine (SX), die auf allen Arduinos läuft, allerdings ist für einige Zentralen das Schreiben auf den Bus nicht schnell genug. Deshalb gibt es jetzt eine neue Version SX22b (Dank an Reinhard Thamm), in der die „digitalWrite“ Befehle ersetzt sind durch direkte Port Writes. Bitte die Ports checken, wenn Sie NICHT den Standard Arduino mit dem ATmega328 verwenden.

Eine weitere Version der Lib stammt von Gerard van den Sel, sieh findet sich ebenfalls auf Github. (Achtung, andere PIN Belegung des Arduino). Als Beispiel gibt es hierfür ein schnelles USB Interface (115kBaud), welches das 66842 Interface emuliert.

Detaillierte Beschreibung: „wie funktioniert die Dekodierung des Selectrix-Signals?“