Der Sketch umfasst zahlreiche Einstellparameter, um die Drehscheiben-Funktionen konfigurieren zu können. Diese Parameter werden meist über sogenannte #defines festgelegt. Die #defines sind nichts anderes als eine Art Textersetzung und werden während des Kompiliervorgangs berücksichtigt. #define LICHT 1 bedeutet nichts anderes, als dass überall, wo LICHT im Sketch steht, eine „1“ eingebaut wird. #defines sind immer GROSS geschrieben. Zwischen dem Parameternamen und dem Wert kommt kein „=“-Zeichen (auch wenn dies hier im Manual zur Verbesserung der Lesbarkeit manchmal anders steht)!
Die wesentlichen benutzerindividuellen Parameter stehen in der Turntable_Config.h Datei bzw. im entsprechenden Reiter der Arduino-IDE. Sie beschreiben die jeweilige individuelle Drehscheibe und die verwendeten Steuerungseinstellungen. Im ino-File stehen weitere #defines. Generell gibt es #defines, die echte Benutzer-Parameter sind, um den Sketch zu beeinflussen, und Sketch-interne defines, die eher zur Vereinfachung des Programmablaufs dienen.
Im Hauptsketch (ino) stehen zudem die default-Werte für diese Benutzerparameter (falls mal einer in der Turntable_Config.h vergessen wurde) und die Sketch-internen defines!
Bei einer neuen Programmversion kopiert man einfach das „Turntable.ino“-File in das Verzeichnis „Turntable“ (oder als Text in den entsprechenden Reiter). Die Konfiguration im „Turntable_Config“ bitte nicht übernehmen, sonst überschreibt ihr eure Drehscheibeneinstellungen! Ausnahme: neue #defines für neue Funktionen müssen ggf. in der „Turntable_Config.h“ eingebaut werden.
Die meisten Parametereinstellungen müssen direkt im Programm bzw. im Config-Reiter gemacht werden, eine spätere Einstellungen im lfd. Betrieb (z.B. über Dekoder-CVs, wie man das von anderen Dekodern kennt) ist i.d.R. nicht möglich. Für Änderungen der Parameter muss man diese im Sketch anpassen und den Code erneut in den Arduino Nano laden.
Der Grund, warum keine CVs verwendet werden konnten, ist schlicht und ergreifend der begrenzte Speicherplatz eines Nano.
Der Arduino-Sketch beinhaltet das eigentliche Programm (Turntable.ino-File), eine Konfigurationsdatei (eigener Reiter „Turntable_Config.h“) sowie mehrere modifizierte Bibliotheken (Libraries).
Bei einer neuen Programmversion, d.h. einer neuen „Turntable.ino“, kann man die eigene Konfiguration übernehmen. Diese muss nur in Ausnahmefällen angepasst werden.
Bevor die Steuerung verwendet werden kann, muss man zunächst in der Turntable_Config.h-Datei die eigene Drehscheibe definieren (Anzahl und Lage der Ports, Drehgeschwindigkeit, Bühnengleispolarisierung etc.) und das Verhalten der verschiedenen Steuerungsmöglichkeiten einstellen (Beleuchtungseffekte, Sound-Lautstärke etc.).
Ein Beispiel zur Konfiguration einer Fleischmann-Drehscheibe und einem 400 Step-Stepper-Motor findet sich hier am Ende der Seite: Parameter zur Einstellung der Drehscheibe
Exkurs:
Ein gültiger Port muss immer >= 0 und < PORT_CNT sein; die OLED-Anzeige addiert +1 dazu.
Intern wird auch mit negativen Ports und Ports >= PORT_CNT gerechnet, um auch Nullpunkt-Durchgänge in der richtigen Drehrichtung verarbeiten zu können. Im Sketch werden dann Steps für eine komplette Umdrehung addiert/subtrahiert, um z.B. eine Bewegung von der 1 Uhr auf die 11 Uhr Position hinzubekommen, oder umgekehrt.
Der Sketch ist sehr speicherintensiv und nutzt den Nano-Speicher quasi komplett aus. Beim Testen muss man ggf. Programmteile ausschalten, damit zusätzliche DEBUG-print-Ausgaben aktiviert werden können!
Die Einsatzszenarien lassen sich über die #defines in der Turntable_Config.h einstellen: Parameter zur Einstellung der Drehscheibe