Warum Arduino? Eine Vielzahl von Weichen-, Signal- und Fahrstromschalter wird überflüssig und der Ardiuno kann neu eingesteltle Fahrstraßen ablehnen, die in Konflikt mit bisher eingestellten Fahrstraßen stehen. So dient er einerseits der Übersicht auf dem Schaltpult und der Bequemlichkeit und andererseits der Sicherheit. Eine solche Steuerung entspricht zwar nicht den Usancen der Bundesbahn, aber die Hampstedter Verbindungsbahn ist schließlich eine private Gesellschaft unter der Regie der Stadt Hampstedt.
Es werden zwei Arduinos installiert - jeweils für den Bahnhof am Ende der Strecke
a) HAMPSTEDT-ALTSTADT (mit dem Arduino Mega) mit 16 Fahrstraßen, 10 Signal- und Fahrstromrelais und 12 Stellrelais für 6 Weichen, eine EKW und ein Formsignal
b) HAMPSTEDT-FISCHHAFEN (mit dem Arduino Uno) mit 4 Fahrstraßen, 4 Signal- und Fahrstromrelais und 5 Stellrelais für 4 Weichen
Für die Einstellung dieser Fahrstraßen genügen in Altstadt 8 und in Fischhafen 2 einfache 1 - 0 - 1 Schalter für den Input der Arduinos.
Die Programme für beide Arduinos haben die gleiche Struktur. In der Hauptschleife wird geprüft, ob sich der Status einer Fahrstaße geändert hat. Wenn nein, macht der Arduino eine kleine Pause und beginnt von vorn. Ist eine Fahrstraße ausgestellt worden, wird das Signal wieder auf Hp0 zurück gesetzt. Ist eine neue Fahrstraße eingestellt worden, so prüft das System, ob eine früher eingestellte Fahrstraße besteht, mit der es zu Konflikten kommen kann (Zusammenstoß oder Flankenfahrt). Ist dem so, wird die neue Fahrstraße nicht zugelassen, sondern ein warnender Piepston nervt.
Mehrer Fahrstraßen können nur dann eingestellt werden, wenn sich die Bewegungen nicht berühren. In "Fischhafen" ist das nur bei einer Konstellation der Fall, aber in Altstadt tangieren die 8 Rangierstraßen von Gleis 1 oder 2 zu Gleis 6 oder 7 und zurück keine Streckenfahrten aus Gleis 3 oder 8. Daher werden für die Zulässigkeitsprüfungen im Altstadt-Programm Fahrstraßensammelklassen gebildet, um das Prüfverfahren zu vereinfachen. Dem Arduino wäre es vermutlich egal, alle einander ausschließenden Fahrstraßen im Einzelfall abzuarbeiten, aber es würde den Programmcode nur unnötig aufblähen. Was nicht da ist, kann keeine Fehler verursachen.
Ist die Fahrstraße zulässig, wird das Signal auf Hp1, Hp2 und Sh1 gestellt, der Fahrstrom geschaltet und die Weichen werden gestellt. Beim Hampstedt-Programm wird außerdem auf einem 16 * 2 - Display die eingestellt Fahr- oder Rangierstraße angezeigt, obwohl man das auch an der Schalterstellugn sehen könnte. Aber etwas Luxus muss sein.
Inzwischen sind auch die Gehäuse für die Arduinos gekommen - zweimal das Gehäuse für den Arduino Mega. Der kleinere Arduino Uno (blaues Schild) passt wunderbar und passgenau hinein. Der Arduino Mega (weisses Schild) - für den das Gehäuse eigentlich gedacht war - würde auch hineinpassen, wenn er nicht mit einer Unterplatte geliefert worden wäre, die ich mich nicht zu entfernen traue. So musste man eben ein wenig tricksen. Gut, dass noch längere 2mm Schrauben vorhanden waren. Ansonsten sehr schöne Gehäuse. Man ist da doch etwas unbefangener beim anfassen der kleinen Zwerge.
Offenbar ist die Programmiersprache für die Arduinos eine Art C-Dialekt. So wirft man nebenbei auch in dieses Medium einen Blick. Anbei als erster Schritt das Listing für den Bereich "Fischhafen". Die Label der Fahrstraßen changeKF, changeKP, changeL und changeM münden alle vie in eine der drei Alternativen
* setback = alte Fahrstraße wird zurück gestellt
* beepy = neue Fahrstraße nicht zulässig
* worker = neue Fahrstraße wird eingerichtet.
Das Listing "Hampstedt-Altstadt" wird nach ähnlichem Schema aufgebaut sein - nur etwas umfangreicher.
http://www.horstbu.de/forum/Fischhafen.rtf