Wie oben schon geschrieben, basiert meine Steuerung auf Arduino
s und die Zugfolge ist rein zufällig. Da ja nur maximal 10 Züge fahren können, sollte es relativ unvorhersehbar werden, welcher Zug als nächstes zu sehen ist. Das Programm ist dabei relativ simpel:
Der Außen- und der Innenkreis können unabhängig voneinander gesteuert werden. So kann auf einem Kreis im Automatikbetrieb gefahren werden, während auf dem anderen ein reiner Handbetrieb möglich ist.
Jedes SB-Gleis hat zwei Haltebereiche. Somit können zwei Züge pro Gleis "geparkt" werden.
Nach Aktivierung der Automatik wird per Zufall ein Gleis im Schattenbahnhof aktiviert und der Zug fährt los. Gleichzeitig wird/werden die Einfahrtsweiche/n auf dieses Gleis geschaltet. Steht auf dem hinteren Haltebereich dieses Gleises noch ein Zug, fährt dieser in den vorderen Haltebereich und bleibt dort stehen. Nach erfolgter "Umrundung" fährt der Zug wieder in das freie Gleis. Nach einer gewissen Wartezeit - welche ebenfalls durch Zufall eingestellt wird - beginnt der Zyklus von vorn.
Es kann zwischen zwei Zufallsmodi gewählt werden. Vergleichbar wie beim Musik hören:
Random oder
ShuffleEs gibt jedoch ein Problem mit "random": Diese Funktion erzeugt keine wirklichen Zufallszahlen, sondern immer die selbe Zahlenfolge. Ich hatte das anfänglich mittels
randomSeed(millis) realisiert. Da erinnerte ich mich an den "Trick" mit dem analogen Eingangsport, den ich mal gelesen hatte. Und da ich noch einen analogen Port frei hatte, ersetzte ich kurzerhand das
millis durch
analogRead. Jetzt fahren die Züge wirklich zufällig aus dem Schattenbahnhof.
Wie gesagt, nichts besonderes und für Profis wird das sicherlich nur ein müdes Lächeln hervorrufen.
Es erforderte allerdings etwas "Hirnschmalz", um zu einem Ergebnis zu gelangen. Auch habe ich vielleicht an manchen Stellen keine sehr elegante Lösung gefunden, aber es funktioniert - selbst über einen längeren Zeitraum störungsfrei.
Darüber bin ich jedenfalls froh.
Und ein bisschen stolz...