Fehlermeldung kopf

Modelleisenbahn in Spur Z (Spurweite 6,5mm, Maßstab 1:220). Infos zur Modellbahn, Tipps zur Eisenbahn, Links zu Modellbahnseiten, Videos zur Modelleisenbahn Spur Z.

Selbstbau eines SX-Fahrreglers

Funktion







Der Regler hat ein LCD-Display mit vier Zeilen zu je 20 Zeichen. Weiter gibt es Taster für die Lokwahl und zum Ein- und Ausschalten der Zentrale, Taster für Horn, Licht und Richtungswechsel, Taster +/- zur Geschwindigkeit/Lokwahl und einen Taster für Nothalt.
Das Display zeigt Fahrstufen, Licht und Horn von vier SX1-Loks an. Die Bedienelemente wirken nur auf die aktive Lok, diese ist ganz links im Display durch einen weißen Punkt markiert. Mit den kleinen Tastern links vom Display wählt man die aktive Lok aus.
Somit hat man praktisch gleichzeitig Zugriff auf alle vier Loks.
Die SX-Adresse der Lok wählt man, indem man links den gewüschten Loktaster gedrückt hält und dann mit den +/- Tastern die Lokadresse einstellt.
Drückt man für mehr als eine Sekunde lang gleichzeitig die Loktaster 1 und 2 bzw. 3 und 4, dann bilden 1 und 2 bzw. 3 und 4 eine Doppeltraktion. Diese wird wieder aufgehoben, wenn nur einer der Taster länger als eine Sekunde gedrückt wird.

Der Aufbau kann mit einem Arduinoboard erfolgen oder preiswerter mit einem Nachbau mit einem ATMega328. Wenn Sie einen Nachbau vorziehen, können Sie in der Arduinoumgebung keinen fabrikneuen ATMega328 verwenden, Sie benötigen einen ATMega328 mit vorinstalliertem Bootloader, solche erhalten Sie z.B. bei Guloshop. Wenn Sie dort bestellen, sollten Sie auch gleich den passenden 16MHz-Quartz samt Kondensatoren, passende Fassungen und Kondensatoren von einigen 100 nF mitbestellen. Der ATMega328 des Arduinonachbaus wird in der Arduino-IDE auf einem üblichen Arduinoboard programmiert und dann auf seine separate Fassung gesetzt. Sie benötigen dazu ein Arduinoboard, bei dem der ATMega328 als DIL-Ausführung verbaut ist, damit Sie den μC wechseln können. Weitere Tipps dazu erhalten Sie hier.

Anschlüsse



Soll ein RESET möglich sein, muss in die Leitung zu Pin1 ein Widerstand (10k) und der RESET-Taster von Pin1 nach GND schalten.
Hinweis: Sollten Sie ähnliche Taster wie in der Abbildung verwenden, dann haben diese vier Lötpins von denen jeweils zwei intern verbunden sind. Ein Multimeter hilft, die richtigen Anschlüsse zu finden.





Angegeben sind die Port-Nummern des Arduino sowie in Klammern die Pin-Nummer des ATMega328.
Port Pin
SX T0: 2 (4) Selectrix Takt über 2k2-Widerstand
SX T1: 4 (6) Selectrix Daten über 2k2-Widerstand
SX D: 12 (18) Selectrix Rückkanal über 100 Ω-Widerstand
SDA: 18 (27) LCD I2C SDA
SCL: 19 (28) LCD I2C SCL
Taster (Alle Taster schalten gegen GND):
Lok1: 5 (11)
Lok2: 6 (12)
Lok3: 7 (13)
Lok4: 8 (14)
+: 14 (23)
-: 15 (24)
<>: 16 (25)
Licht: 0 (2)
Horn: 1 (3)
ZEein: 9 (15)
ZEaus: 10 (16)
Halt: 11 (17)
Nur für den ATMega328-Nachbau:
Reset: (1) auf 5V gelegt
GND: (8) (22)
+5V: (7) (20) (21)

Zwischen +5V und GND muß nahe am μC ein Kondensator von einigen 100nF eingelötet werden.

Aufbau





Die Leitungen T0 und T1 zum SX-Bus werden über 2k2-Widerstände angeschloßen, die Leitung D zum SX-Bus über 100 Ohm.
Die I2C-Displays benötigen eine passende Library, beim Download ist eine Library dabei, die für nebenstehendes Display passt.

Hat man keine 5V-Versorgung, so muß man die SX-Stromversorgung über einen 5V-Regler zuführen. Entweder man baut einen Längsregler ein (Siehe hier) oder man verwendet einen 5V-Regler wie er z.B. in Autoladegeräten für USB eingebaut ist. (Ich hatte einen, bei dem der USB-Stecker defekt war, so ist dieser Regler jetzt im Fahrregler aktiv.)

Verwendet man einen Arduino, dann geht die SX-Stromversorgung an den Anschluß Vin des Arduino. Das LCD-Display wird vom Anschluß 5V des Arduino versorgt.
Die richtigen Ports des Arduino findet man in obiger Tabelle:
Der Takt T0 ist am Pin4 gezeichnet, laut Tabelle ist dies Port2 des Arduino.
Der Schalter <> ist am Pin25 gezeichnet, laut Tabelle ist dies Port16 des Arduino.
Der Arduino hat 20 Ports, die Ports 0 bis 13 sind als Digitalports bezeichnet. Die Ports 14 bis 19 werden als Analogports A0 usw. bezeichnet, diese können aber ebenfalls als Digitalports angesprochen werden, A0 ist dann Port14 usw.


Obige Schaltung hat aber ihre Tücken: In die blaue Leitung von +B sollte noch ein Widerstand eingefügt werden, da je nach Zentrale +B über 12V liegen kann und damit der eingebaute 5V-Regler überlastet werden kann.
Hier finden Sie Details zur Stromversorgung des Arduino UNO.
Natürlich kann auch ein Arduino Nano verwendet werden.



Nebenstehend ist die Belegung des SX-Steckers gezeichnet.
(Das Bild entspricht der Belegung der SX-Buchse von vorne.)
In der Spur Z beträgt +B ca. 12V, bei anderen Spuren (je nach Versorgungsspannung der Zentrale) bis ca. 20V. Bei höheren Spannungen ist ein Widerstand von ca. 100 Ohm vor dem 5V-Regler sinnvoll.
(Wird ein originaler Arduino benutzt, so ist ein solcher Vorwiderstand nötig, da Vin des Arduinoboards 12V nicht überschreiten sollte.)


Ein Autonetzteil für 5V kann als Stepdown-Regler benutzt werden.
Wenn man das Auto-Stecker-Netzteil zerlegt, bleibt der 5V-Stepdownwandler übrig.
Der Innenaufbau. Die Bauteile und Taster sind mit Heißkleber montiert. Die Verkabelung fehlt noch.

Video








Sie sehen den fertigen Regler in Funktion.

Download

Sketch und Libs