Der Arduino bietet mindestens 32 I/O-Ports für Rückmelder. Diese möchte ich nutzen um auf Ausstellungen einen Minimalbetrieb zu gewährleisten, wenn ich mal eine Pause haben möchte.
Was bei Gleichstrombahnen immer mit Aufwand verbunden ist, gestaltet sich bei digitalisierten Anlagen recht einfach. Bei einer Gleisbesetztmeldung mit Stromfühlern über das Gleis hat man das Problem, dass bei Gleichstrom der Fahrstrom abgeschaltet wird.
Bei einer Digitalanlage liegt die Versorgungsspannung immer an und die Lok wird über einen Befehl gestoppt. Außerdem verbraucht der Decoder auch im Stand Strom. Diesen kann man messen.
Also schließt man die in 1. Schiene direkt an einen Ausgang der Zentrale an. Die 2. Schiene kommt an den Stromfühlerbaustein und dieser dann an den anderen Ausgang der Zentrale.
Schaltplan des Rückmelders
Die Bauteile:
- Durch die Dioden fließt der Strom, den die Lok verbraucht. Eine Diode hat die Eigenschaft, die Spannung um 0,7 Volt zu senken – zwei also um 1,4 Volt. Steht keine Lok auf dem Gleis, fließt kein Strom, und damit fällt auch keine Spannung an den Dioden ab.
- Weil der Digitalstrom ein Wechselstrom ist, benötigt man je vier Dioden; zwei für jede Stomrichtung.
- Der LTV-814 ist ein Optokoppler. Er erzeugt mit den zwei Dioden links Licht, das wiederum von der Photodiode rechts empfangen wird. Sie schaltet den Strom bei Licht durch. So sind Fahrstrom und Besetztmeldung galvanisch getrennt.
- Der Optokoppler schaltet bei 1,2 Volt seine Dioden an, deshalb bei die je zwei Dioden für 1,4 Volt Spannungsabfall.
- Die Widerstände sind eigentlich nicht notwendig, doch sie schützen den empfindlichen Optokoppler vor Überspannung. Das passiert z.B., wenn eine Diode eine kalte Lötstelle hat oder durchbrennt. Dann lägen am Optokoppler die 14 Volt Gleisspannung an und er raucht ab. 1 KOhm wähle ich, weil ich davon noch eine ganze Rolle liegen habe. 300 Ohm gehen aber auch.
Testaufbau
Die Schaltung teste ich auf einem Steckbrett, dass ich für unter 10€ gleich mit den Bauteilen bestellt habe.
- Das Handy misst über die EX-Toolbox den Stromverbrauch der Lok. Im Stand ist er unter einem Milliampere. Bei Schleichfahrt die angezeigten 53 mA maximal.
- Das Steckbrett ist bestückt, die Widerstände fehlen noch.
- Am Arduino sind die Ports falsch angeschlossen.
Wenn alles richtig aufgebaut ist, richtet man den entsprechenden Pin gemäß Rocrail-Anleitung als I/O-Port ein. Nun kann man die Funktion mit dem Rückmeldemonitor prüfen.
Rückmeldeshield
Das Rückmeldeshield baue ich mit einer Streifenrasterplatine mit 2,54mm Raster.
Zuerst sind die Steckpins dran.
Dann wird die Masse gebrückt.
Auf jedem Steifen liegt ein Pin, ich benötige aber zwei Leiterbahnen für einen Rückmelder. So trenne ich alle Streifen beim dritten Loch durch. Weil ich das Lineal gerade in der Hand habe trenne ich die Leiterbahn auch gleich für die Optokoppler.
Dann sind die Widerstände dran.
Beim Optokoppler ist Anschluss 1 mit einem eingeprägten Punkt markiert, so lässt er sich gut positionieren und verlöten.
Für die Widerstände wird jede zweite Leiterbahn durchtrennt. Danach werden die Widerstände eingelötet.
Damit der Platz reicht, löte ich paarweise zwei Dioden zusammen. Sie können nun in benachbarte Löcher gesteckt und verlötet werden.
Als letztes wird noch DCC auf jede zweite Leiterbahn gebrückt. Für den Eingang benutze ich die Leiterbahn, die der Masse gegenüber liegt.
Achtung: Hier sollte man unbedingt prüfen, dass die Leiterbahn auch wirklich getrennt ist. Sonst raucht der Arduino ab!
Testen
Nach einem nochmaligen Testen auf eventuelle Kurzschlüsse wird die Platine auf den Arduino gesteckt. Ich löte einen braunen Draht auf DCC, der die Verbindung zum ersten DCC-Kontakt des Motorshields herstellt.
Mit dem Steckbrett schließe ich einen Widerstand an den zweiten DCC-Kontakt des Motorshields.
Nach der Anleitung aus dem Rocrail-Wiki richte ich jeden zweiten Pin von 23 bis 53 als Rückmelder ein. Nun erscheint im Rückmeldemonitor eine 1 bei Status, wenn ich die entsprechenden Leiterbahn mit dem weißen Kabel berühre.
Da fehlt doch was
Obwohl mein Rückmelde-Shield 16 Pins bedient, habe ich nur acht Rückmelder. Jeder zweite Pin ist nicht belegt. Ich habe jedoch darauf geachtet habe, dass für die nicht belegten Pins je ein Lötloch frei ist. So kann ich mir eine zweite Platine bauen, die ich mit Kabeln mit der ersten verbinde.