Alle nachstehend aufgelisteten Aktionen des Arduinoprogramms können bequem über einache Tastaturbefehle mit einem über USB angeschlossenen PC ausfü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 Schrittmotren-Treiber und die des Soundmoduls lesen.
Das umfangreiche Arduinopragramm wurde in ein Hauptprogramm, dass Unterprogramme StepperControl, Trackmanager und Sound enhält, unterteilt.
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 zu erst die USB Verbindung hergestellt werden. Dazu muss der COM-Port gewählt werden. Dann auf connect klicken.
Wenn die Verbindung hergestellt ist, erscheint der Button grün.
Mit goto wird die selektierte Gleispostion angefahren. Im Bereich adjust positions können die Werte mit Mausklicks geändert und mit Ok! gepeichert werden.
Mit calibrate erfolgt die automatische Korrektur des Nullpunktes. Dazu dreht die rechts herum bis über den Hall-Sensor ein Stopp ausgelöst wird. Die Bühne wird dann um StepsToTrack0 Schritte langsam zurück gedreht. 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 empfohlen.


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 und natürlich die Steuerung der Signale und der Hausbeleuchtung über das Gleissignal auf der Bühne. Da war ein größeres Projekt. Siehe Bühnen-Elektronik.