Gleisbildstellpult – Weichensteuerung mit Arduino

Für mein Gleisbildstellpult war ich auf der Suche nach einer einfachen Weichensteuerung mittels Start- und Ziel-Taster. Mit Hilfe eines Arduino Mega konnte ich all meine Anforderungen umsetzen. Wie ich es im detail gelöst habe lest ihr hier….

Weichensteuerung mit ArDuino

In Zeiten von Modellbahnsteuerung via Tablet und Smartphone alla Z21 habe ich mich bewusst dazu entschieden die Kinderanlage mit Hilfe eines klassischen Gleisbildstellpults und Drucktastern zu steuern. Das möchte zunächst altmodisch klingen ist es aber nicht, da die Steuerung der Weichen und Signale ein Arduino übernimmt.  Aber der reine nach….

Bau GleisbildstellpulT

Das Gleisbildstellpult habe ich ganz einfach aus einer Polystyrolplatte, die mit Drucktastern und LED´s versehen ist, gebaut. Die nötigen Arbeitsschritte von der Erstellung des Geisschemas in Corel Draw  bis zur Montage der Taster habe ich den Bau  in einem Video schritt für schritt Dokumentiert.

Welche Funktionen soll das Gleisbildstellpult nun übernehmen?

Mittels Start- und Zieltaster sollen die entsprechenden Fahrstraßen geschaltet werden. Hierfür gibt es natürlich verschiedene Möglichkeiten wie z.B. Dioden Matrix, allerdings bei Einsatz von klassischen Doppelspulenantrieben wird es schwierig mehrere Weichen gleichzeitig zu schalten. Der Stromverbrauch pro geschalteter Weiche ist sehr hoch und die Modellbahntrafos gehen sehr schnell in die Knie, als folge dessen wird die Weichen nicht sicher geschaltet.  Mittels entsprechender elektrischer Schaltungen die einen ausreichend hohen Stromstoß erzeugen (Brückengleichrichter und Kondensatoren) kann man dieses Problem zwar lösen, aber eleganter wäre es meiner Meinung nach die Weichen in einer Sequenzen nacheinander zu schalten.

Des Weiteren möchte ich zukünftig Formsignale einsetzen, die in Vorbildgeschwindigkeit den Flügel heben und senken. Das lässt sich eigentlich nur durch den Einsatz von Modellbau Servos realisieren. Zur Ansteuerung kann man eine Vielzahl von Servo-decoder auf dem Markt kaufen, allerdings erlauben die meisten keine direkte Ansteuerung des Servos über einen Drucktaster (… meistens wird der Schaltbefehl über das  Digitalsystem an den Decoder geschickt…).

Zu guter Letzt soll natürlich mittels LED´s der aktuell Schaltzustand der Weichen und Signalen im Schaltpult angezeigt werden.

Die Lösung für mein Gleisbildstellpult!

Nach etwas Recherche  im Netz bin ich dann auf den Arduino gestoßen (www.arduino.cc).  Die Hardware besteht aus einem einfachen E/A-Board mit einem Mikrocontroller und analogen und digitalen Ein- und Ausgängen. Die Programmierungsumgebung ist recht einfach gehalten und soll auch technisch weniger Versierten den Zugang zur Programmierung ermöglichen.

Der Arduino erfüllt alle meine Anforderungen an das Schaltpult:

  • Direkte Ansteuerung von Servos
  • Ansteuerung von Relais
  • Ansteuerung von LED´s
  • Einlesen Taster Status

Elektrischer Aufbau des Gleisbildstellpults

Der prinzipielle Aufbau meines Schaltpults ist in untenstehenden Schema dargestellt. Der Kern des ganzen stellt ein Arduino Mega von Elagoo (link zu Amazone) da, der die Servors zur Signalsteuerung antreibt und mit Hilfe eines Relais board die Weichen schaltet. Die Taster zur Wahl der Fahrstraßen und die LED´s zur Anzeige der Weichen und Signalstellungen sind ebenfalls an den Arduino angeschlossen. Zu guter Letzt werden die LED´s vom Bahnübergang auch über den Arduino angesteuert. 

Schema Stellpult mit Arduino
Übersicht Verkabelung des Stellpults mit dem Arduino

Damit ich den Überblick über die verwendeten PIN´s nicht verliere, habe ich mir ein PIN out in Excel erstellt. In dieser Tabelle sind die verwendeten PIN´s mit ihrer Funktion und ihrer Bezeichnung in der Arduino Programmierung aufgeführt. Die Pin out Excel Tabelle könnt ihr hier herunterladen –> Download Stellpult PIN Out
Die Verkabelung des Arduinos zur Weichensteuerung und Anzeige der Weichenstellung im Stellpult seht ihr unten. 

Arduino Weichensteuerung Sc
Verkabelung Schema zur Weichensteuerung mittels Arduino

Nun zum eigentlichen Arduino Sketch…

Das hier gezeigte Sketch der Stellpultsteuerung umfasst die Funktionalität der Weichensteuerung über Start- und Ziel- Taster. Die Signalsteuerung ist  in der Entwicklung und wird in einem zukünftigen Bericht vorgestellt.

Das Stellpult sketch mit der Weichensteuerung könnt ihr hier herunterladen –>  Download Arduino Weichensteuerung Sktech

Im Header vom Sketch wird die EEPROM und Servo Bibliothek aufgerufen.  Die EEPROM Bibliothek ist notwendig um den Status der LED´s zur Anzeige der Weichen und Signalstellung im EEPROM zu speichern. Damit ist sichergestellt, dass nach abschalten und wieder anschalten des Arduino immer der letzte Status der Weichen oder Signalstellung angezeigt wird. Die Servo Bibliothek ist zur Ansteuerung der Signale notwendig, wird aber jetzt noch nicht verwendet. 

Anschließend werden alle nötigen Variablen definiert.

Im “void  setup ()” ist die Funktion der einzelnen PIN´s, ob es sich um einen Input oder Output handelt, genau definiert. Des Weiteren ist noch wichtig zu erwähnen, dass  der internen Pull Up Widerstand  (INPUT_PULLUP) des Atmega chip für die Inputs verwendet wurde . Alle Eingangssignale sind daher invertiert d.h. Taster gedrückt = Low und Taster nicht gedrückt = High .

Der Befehl CheckLedState() startet ein Unterprogramm, der den im EEPROM gespeicherten LED Status bei jedem Programmstart abfragt.

Im “void loop ()” steht nun der eigentliche Programmcode für die Steuerung. Zunächst wird ständig der Status der Weichentaster abgefragt. Wird beispielsweise Start-taster Links & Taster Gleis 1  gedrückt, läuft folgendes im Programm ab:
Das Relay zum Schalten der Weiche 1 in Abbiegerichtung wird angesteuert. Die LED zur Anzeige der Weichenstellung in gerader Position wird aus und die LED in Abbiegerichtung eingeschaltet. Anschließend wird der LED Status im EEPROM gespeichert.
Damit der Doppelspulenantrieb nicht durchbrennt, wird das Relay zur Weichenansteuerung nach einer gewissen Zeit abgeschaltet. Die Schaltdauer ist in der Variable “DelayTimeWeiche”  individuell einstellbar (Wert entspricht Millisekunden)

Ich habe für euch das ganze noch in form eines Videos zusammengefast.

Als nächstes Arduino Projekt werde ich mich mit der Ansteuerung der LEDs in den Andreaskreuzen beschäftigen

2 comments on “Gleisbildstellpult – Weichensteuerung mit ArduinoAdd yours →

  1. Hallo die Beiträge von euch sind super. Da habe ich mal eine frage, kann ich das auch mit einem Raspberry pi3  b + machen

    1. Hallo Jürgen,
      Leider kenne ich mich mit dem Raspberry pi nicht aus, daher kann ich dir hierzu keine Antwort geben.

      LG Sebastian
      von N-Modellbahn

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Ich akzeptiere

Translate »