Das Arduinoprogramm speichert für jede Gleisposition einen Vorwärts- und einen Rückwärtswert. Insgesamt werden 48 Gleispositionen verwaltet.
Alle nachstehend aufgelisteten Aktionen des Programms können bequem über einache Tastaturbefehle, mit einem über USB angeschlossenen PC, ausgeführt werden. Eine Ausgabe erfolgt über den Bildschirm. Das ist für die Entwicklung und Adaption des Programms sehr hilfreich, aber für den Anwender nicht zumutbar. Deshalb habe ich für den Alltag ein weiter unten beschriebenes Windowsprogramm entwickelt, welches mit dem Arduinopramm automatisch kommuniziert.
'R': Reset()
'E': EEPROMtoList()
'e': listToEEPROM()
'l': listPositions()
'a': relayOff()
'A': relayOn()
'd': turnToPos(data.substring(......
'D': turn180()
'p': adjustment(data.charAt(1), 10)
'P': adjustment(data.charAt(1), 30)
'm': adjustment(data.charAt(1),-10)
'M': adjustment(data.charAt(1),-30)
'o': writeNewposEEPROM()
'c': calibrate()
'f': forward()
'b': backward()
'x': front[pos] = data.substring(...
'y': back[pos] = data.substring(...
's': soundOn()
'S': soundOff()
't': myStepper.rotate(-1)
'u': myStepper.rotate(1)
'T': myStepper.stop()
'v': Prop.readProps()
'V': Prop.saveProps(data.sub...
setzt alles zurück, die 48 Gleispositonen werden neu berechnet
speichert die EEPROM-Werte im Array
speichrt das Array im EEPROM
gibt das gesamte Array aus
schaltet das Relay aus
schaltet das Relay an
dreht die Bühne mit dem Haus zum Gleis x, Bsp. d12
dreht um 180 Grad
erhöht die aktuelle Position um 10
erhöht die aktuelle Position um 30
verringert die aktuelle Position um -10
verringert die aktuelle Position um -30
speichert die aktuelle Position im EEPROM
die Bühne zum Hallsensorstopp und führt die Calibrierung durch
die Bühne dreht forwärts (rechts herum)
die Bühne dreht rückwärts
speichert den Front-Wert im Array, Bsp.: x125
speichert den Back -Wert im Array, Bsp.: y128
schaltet den Sound an
schaltet den Sound aus
Bühne dreht endlos rechts herum
Bühne dreht endlos links herum
Drehung wird gestoppt
gibt die Drehscheibeneinstellungen (Properties) aus
speichert die Einstellungen
Für das Arduinoprogramm werden folgende Libraries benötigt:
NmraDcc, MobaTools. EPROM, SoftwareSerial und DFRobotDFPlayerMini.
Man sollte auch die Dokus vom Schrittmotoren-Treiber und die des Soundmoduls lesen.
Das umfangreiche Arduinopragramm wurde unterteilt in die Unterprogramme StepperControl, Trackmanager und Sound.
Jede Gleisposition wird über eine DCC-Adresse angefahren. Die Startadresse und Anderes wird in den Properties gespeichert.


Die Abbildungen zeigen die grafische Oberfläche des von mir entwickelten Windows-Programms, das über USB mit dem Arduino kommuniziert. Alle im Menü des Arduinoprogramms enthaltenen Aktionen können mit einfachen Mausklicks aufgerufen werden. Die Aktionen des Arduinos werden links im Fenster protokolliert.
Nach dem Programmstart muss zuerst die USB Verbindung hergestellt werden. Nach der Auswahl des COM-Ports, klickt man auf connect.
Wenn die Verbindung hergestellt ist, erscheint der Button grün.
Mit goto wird die selektierte Gleisposition angefahren. Im Bereich adjust positions können die Werte mit Mausklicks geändert und mit Ok! gespeichert werden.
Mit calibrate erfolgt die automatische Korrektur des Nullpunktes. Dazu dreht die Bühne solange rechts herum, bis über den Hall-Sensor ein Stopp ausgelöst wird. Die Bühne wird dann um StepsToTrack0 Schritte langsam zurück gedreht. Dann wird der Nullpunkt neu gesetzt. Unter Properties muss StepsToTrack0 so eingestellt werden, dass die Bühne exakt auf Gleis 0 steht.
In Properties wird auch die DCC-Startadresse und die Gleisposition, ab der das Relays anziehen soll, hinterlegt. Danach gilt folgende Zuordnung:
startAddr = Prop.StartAddr; //225
soundAddr = startAddr
turn180Addr = startAddr + 1
calibrateAddr = startAddr + 2
firstTrackAddr = startAddr + 4
Seit vielen Jahren benutze ich die kostenlose Modellbahnsteuerungssoftware Rocrail. In Rocrail findet man gute Anleitungen zur Einrichtung der Drehscheibe.
Es wird der Schnittstellen-Typ generic benötigt.


Alle 48 Abgänge müssen für die korrekte Darstellung und Adressierung konfiguriert werden, siehe rechts oben. Besondere Bedeutung haben dabei die Spalten Raster-Verbindung und Adresse. Damit die Bühnendrehung in Rocrail verfolgt werden kann, benögt man in jedem Fall einen Positions-Rückmelder, der das Decoder-Signal Position erreicht auswertet. Der Rückmelder muss in Rocrail im Fenster Schnittstelle rechts oben eingetragen werden.
Die Software wird auf GitHub zur Verfügung gestellt.
Für den Automatikbetrieb wollte ich für die genaue Positionierung von Lokomitiven auf der Bühne vier Rückmelder haben. Die Steuerung der Signale und der Hausbeleuchtung auf der Bühne sollte über DCC erfolgen. Das war ein größeres Projekt. Siehe Bühnen-Elektronik.