Situationsbeschreibung
Schon vor einiger Zeit habe ich für meinen Nebenbahn-Bahnhof Viessmann Formsignale als Bausatz montiert und mit einem Servo-Antrieb versehen. Die beiden Gleise werden jeweils mit einer Kombination aus Haupt- und Sperrsignal ausgestattet, die als Einbau-Modul konzipiert ist. Der Fahrstromschalter wird vom Servo-Antrieb des Sperrsignals bedient.
Sie wurden zunächst über einen ESU Switch-Pilot Servo angetrieben, der sich über den LokProgrammer sehr gut einstellen läßt. Allerdings zeigten sich in der Praxis einige Nachteile wie z.B. unmotiviertes Verstellen beim Einschalten, welches dann nur durch konkrete Schaltbefehle korrigiert werden kann. Bei einer manuell bedienten Anlage etwas ärgerlich. Außerdem lassen sich maximal Endlagen und Stellgeschwindigkeit konfigurieren.
Der Arduino mit seiner Servo-Bibliothek bietet da nun wesentlich mehr Möglichkeiten – insbesondere die freie Programmierung der Flügelbewegungen, die bei einem mechanischen Stellwerk im Vorbild deutlich von einer linearen Bewegung abweicht. So muss der Stellwerker am Hebel umgreifen und ein fallender Signalflügel federt in der Endlage etwas nach.
Diese Bewegungsabläufe stellen die eigentliche Herausforderung bei diesem Projekt dar.
Das Bahnhofs-Shield
Neben den Signalen müssen in der Bahnhofs-Ein- bzw. Ausfahrt auch die Weichen passend gestellt werden – diese sind mit herkömmlichen Doppelspulen-Antrieben versehen, die am einfachsten über Relais angesteuert werden.
Die gesamte Hardware wurde auf ein passendes „Shield“ montiert:
Neben der Ansteuerung der Servos und Weichen ist das Ein- und Ausschalten der Servo-Spannungsversorgung ein wichtiger Bestandteil, um unerwünschte Störungen (Einschalt-Zucken, Servo-Brummen) zu vermeiden. Die Relais werden über ein Transistor-Array ULN2803A angesteuert, da der Spulenstrom den maximalen Ausgangsstrom der Mikroprozessor-Ports überschreiten kann.
Schalten der Servo-Spannungsversorgung
Ein Relais schaltet zentral für alle Servos die Spannungsversorgung ein bzw. aus:
So werden z.B. beim Programmstart zunächst die Servos softwaretechnisch initialisiert und mit den zur Grundstellung passenden Impulsen angesteuert, bevor die Servos Betriebsspannung erhalten. Unkontrollierte Bewegungen finden so nicht statt.
Gleisbild-Stellpult zur Befehlseingabe
Die Wahl der Fahrstraßen erfolgt über ein kleines Gleisbildstellpult, dessen Taster als Widerstandsleiter verdrahtet sind. So reichen drei Leitungen und ein analoger Eingang zur Auswertung:
Allerdings darf immer nur ein Taster gedrückt werden. Diese Einschränkung halte ich bei einem privaten Projekt aber für vertretbar – ein Serienprodukt müsste solche Fehler natürlich abfangen können. Die Platine mit den Tastern und Widerständen wurde in ein kleines Kunststoff-Gehäuse eingebaut:
Vorbildgerechte Flügelbewegung
Hier beginnt nun der für mich besonders spannende Teil …
Erkennbar sind das „Umgreifen“ beim Stellen von HP0 auf HP2 und das „Nachfedern“ beim Stellen von HP2 auf HP0.
Den Code gibt´s als Download, wenn die erste voll funktionsfähige Version fertig ist.