Benutzer-Werkzeuge

Webseiten-Werkzeuge


anleitungen:bauanleitungen:locoturn_v10:150_locoturn_parameter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anleitungen:bauanleitungen:locoturn_v10:150_locoturn_parameter [2024/09/27 15:31] – [LocoTurn V1.1 / V1.2] domapianleitungen:bauanleitungen:locoturn_v10:150_locoturn_parameter [2026/04/27 15:39] (aktuell) – [Beispielkonfiguration] domapi
Zeile 3: Zeile 3:
 Aus der Vielzahl der Konfigurationsvariablen (#defines) hier ein paar wesentliche: Aus der Vielzahl der Konfigurationsvariablen (#defines) hier ein paar wesentliche:
  
-  * Einige #defines wie **USE_DCC**, **USE_SOUND**, **USE_SERIAL_INPUT** etc. steuern, was der Sketch alles später an Funktionen bietet.+  * Einige #defines wie **USE_DCC**, **USE_SOUND**, **USE_SERIAL_INPUT** etc. steuern, was der Sketch alles später an Funktionen bietet, also, ob DCC, Sound und Eingaben über den seriellen Monitor verwendet werden.
  
   * Das #define **USE_POTI** muss auf 0 gesetzt werden, wenn kein Poti angeschlossen ist, sonst kann es sein, dass die Drehscheibe nach dem ersten Kalibrieren und Anfahren des ersten Ports "unkontrolliert herumschleicht".   * Das #define **USE_POTI** muss auf 0 gesetzt werden, wenn kein Poti angeschlossen ist, sonst kann es sein, dass die Drehscheibe nach dem ersten Kalibrieren und Anfahren des ersten Ports "unkontrolliert herumschleicht".
Zeile 9: Zeile 9:
   * Zentrale Parameter sind die Anzahl der benötigten Ports #define **PORT_CNT** bzw. #define **PARTLY_USED_PORTS** (falls nicht alle angefahren werden sollen) und #define **PARTLY_USED_PORTS_TAB** (Tabelle der Ports, die angefahren werden können).   * Zentrale Parameter sind die Anzahl der benötigten Ports #define **PORT_CNT** bzw. #define **PARTLY_USED_PORTS** (falls nicht alle angefahren werden sollen) und #define **PARTLY_USED_PORTS_TAB** (Tabelle der Ports, die angefahren werden können).
      
-  * Die erste verwendete DCC Adresse ist einzugeben, wenn man von dem im Programm vorgegebenen DCC-Adressraum abweichen will: #define **FIRST_USED_DCC_ADDR**.+  * Das #define **DCC_MAERKLIN_7687_COMPATIBLE** muss für die Verwendung von PC-Steuerungsprogrammen i.d.R. auf 1 gesetzt werden. 
 + 
 +  * Über das #define **DCC_OFFSET** kann ein Offset eingestellt werden, damit LocoTurn auf andere DCC-Adressbereiche reagiert. Der Offset wird auf die jeweiligen DCC-Adressen addiert. Bei manchen Zentralen muss z.B. der Roco-Offset von „-4“ hier eingestellt werden, damit LocoTurn die Adressen richtig interpretiert.
      
-  * Ebenso ist die letzte verwendete DCC Adresse zu definieren, wenn man nicht alle vorgesehenen DCC-Adressen benötigt und vom vorgegebenen DCC_Adressraum abweicht: #define **LAST_USED_DCC_ADDR**.+  * Ebenso ist die letzte verwendete DCC Adresse anzupassen, wenn man nicht alle vorgesehenen DCC-Adressen benötigt: #define **LAST_USED_DCC_ADDR**.
      
   * Liste der DCC-Adressen für die Ports anpassen: #define **DCC_PORT_ADDR_LIST**. Die Liste muss **PORT_CNT**-Einträge enthalten. Wenn der Märklin-Modus (**DCC_MAERKLIN_7687_COMPATIBLE**) verwendet wird, reichen PORT_CNT / 2 Einträge.   * Liste der DCC-Adressen für die Ports anpassen: #define **DCC_PORT_ADDR_LIST**. Die Liste muss **PORT_CNT**-Einträge enthalten. Wenn der Märklin-Modus (**DCC_MAERKLIN_7687_COMPATIBLE**) verwendet wird, reichen PORT_CNT / 2 Einträge.
Zeile 61: Zeile 63:
  
  
-====== Beispielkonfigurationen ======+====== Beispielkonfiguration ======
  
 Ab der Version V1.1 sind einige #defines dazugekommen oder wurden umbenannt. Die folgende Turntable_config.h ist nur mit der entsprechenden ino-Version (1.1 oder höher) lauffähig. Ab der Version V1.1 sind einige #defines dazugekommen oder wurden umbenannt. Die folgende Turntable_config.h ist nur mit der entsprechenden ino-Version (1.1 oder höher) lauffähig.
 +
 +Am besten man orientiert sich an den Einstellungen unten und passt alles an die eigene Drehscheibe an. Zu den meisten Parametern gibt es eine Erläuterung, ergänzt durch die jeweiligen Kapitel im Wiki:
 +
 <code> <code>
 //================================================================================================================================================================== //==================================================================================================================================================================
-// Benutzer-spezifische Parameter+// Benutzer-spezifische Parameter V1.7
 //================================================================================================================================================================== //==================================================================================================================================================================
 /* /*
-    26.01.2024finale Anpassung der Port-Konfiguration an PIE-Anlage+    23.04.2026: Port-Konfiguration domapi-Anlage
          
     Die Parameter hier dominieren diejenigen aus dem Hauptprogramm "Turntable"!     Die Parameter hier dominieren diejenigen aus dem Hauptprogramm "Turntable"!
Zeile 102: Zeile 107:
 #define USE_POTI                            1           /* 0 = Drehen des Poti löst keine Drehscheibenbewegung aus       1 = Poti für manuelle Bewegungen wird benutzt #define USE_POTI                            1           /* 0 = Drehen des Poti löst keine Drehscheibenbewegung aus       1 = Poti für manuelle Bewegungen wird benutzt
                                                            Achtung: Falls kein Poti angeschlossen wird, ist dieser Wert auf 0 zu setzen. Andernfalls schleicht die Drehscheibe u.U. vor sich hin.*/                                                            Achtung: Falls kein Poti angeschlossen wird, ist dieser Wert auf 0 zu setzen. Andernfalls schleicht die Drehscheibe u.U. vor sich hin.*/
 +
 +#define ONLY_ONE_POSITION_DATASET                     // 0 = alle 4 Positionsdatensets werden benutzt, 1 = nur das 1. Set verwenden (empfehlenswert bei hochsymmetrischen DS und wenn PC-Software zur steuerung verwendet wird)
  
 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Zeile 140: Zeile 147:
  
 #define HOUSE_LIGHT_MODUS                                          // nur für direktes WS281x-Board: 0 = einfaches Ein/Aus  1 = Fade in/out  2 = Neonflicker #define HOUSE_LIGHT_MODUS                                          // nur für direktes WS281x-Board: 0 = einfaches Ein/Aus  1 = Fade in/out  2 = Neonflicker
 +
 +#define WS2811_R_G_OUTPUT_SWAPPED                                  // 0 = R und G Kanal sind nicht vertauscht, 1 = R und G Kanal sind vertauscht
  
 //------------------------------------------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------------------------------------------
Zeile 270: Zeile 279:
                                                                        - 1 + Stillstand: OK steuert durch und erzeugt eine Rückmeldung.                                                                         - 1 + Stillstand: OK steuert durch und erzeugt eine Rückmeldung. 
                                                                        Viele Steuerungssoftwarepakete erwarten ein Signal, wenn die DS steht (d.h. angekommen ist)*/                                                                        Viele Steuerungssoftwarepakete erwarten ein Signal, wenn die DS steht (d.h. angekommen ist)*/
 +
 +#define MOVE_STATUS_FIX                                           // Zeit in s, die der Bewegungsmelder "DS steht still" wartet, bis der nach dem Stillstand eingeschaltet wird (fixe Zeit)
 +#define MOVE_STATUS_RANDOM                  7                       // zufälliger Zeitanteil in s, der auf den fixen Wert addiert wird (abzgl. 1)
  
 //------------------------------------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------------------------------------
Zeile 314: Zeile 326:
  
 #define ADVANCED_REFERENCE_DETECTION        1                       // "1" fährt den Hallsensor beim 0-Punkt Kalibieren schnell an, dreht ein Stückchen zurück und fährt ihn nochmals langsam an und speichert die Referenzposition #define ADVANCED_REFERENCE_DETECTION        1                       // "1" fährt den Hallsensor beim 0-Punkt Kalibieren schnell an, dreht ein Stückchen zurück und fährt ihn nochmals langsam an und speichert die Referenzposition
- 
  
 //------------------------------------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------------------------------------
Zeile 320: Zeile 331:
 //------------------------------------------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------------------------------------------
 #define OLED_TYP                            13                      // Tested with the following displays 87, 91, 96, 13 #define OLED_TYP                            13                      // Tested with the following displays 87, 91, 96, 13
-#define USE_u8x8                            1                       // 1 bei 96 und 13 + 
-#define SHOW_POSITION_MAINSCREEN                                  // Positionsanzeige auf dem Hauptscreen+#define USE_u8x8                            1                       // 1 bei Typ 96 und 13 
 +#define NO_FLICKER_u8x8                                           // 1 = Disable the flickering if USE_u8x8 is active (Uses 74 bytes FLASH); wir nutzen "0" beim 1,3" OLED, da nix flackert :-) 
 + 
 +#define SHOW_POSITION_MAINSCREEN                                  // Positionsanzeige auf dem Hauptscreen, dann muss LARGE_PORT_NUMBER_OLED = 0 sein (keine größee Schrift!) 
 +#define USE_LARGE_FONT_FOR_NUMBERS          0                       // Anzeige vom Port- bzw. Gleis-Nummer in größerer Schrift. 0 = kein weiterer Font notwendig 
 +#define LARGE_PORT_NUMBER_OLED              1                       // Spezialfall z.B. für das 1,3" OLED, damit kann man den Port bei Auswahl des Zielports und bei Stillstand in größerer Schrift anzeigen,  
 +                                                                    // nur möglich, wenn #define SHOW_POSITION_MAINSCREEN = 0 
 +                                                                    // und bei #define ONLY_ONE_POSITION_DATASET = 1  
 +                                                                    // bisher kein Test mit anderen OLED-Typen erfolgt! 
 +                                                                     
 +#if LARGE_PORT_NUMBER_OLED == 1 && ONLY_ONE_POSITION_DATASET == 0 
 +    #undef LARGE_PORT_NUMBER_OLED 
 +    #define LARGE_PORT_NUMBER_OLED          0 
 +#endif 
 + 
 +#if LARGE_PORT_NUMBER_OLED == 1 && SHOW_POSITION_MAINSCREEN == 1 
 +    #undef LARGE_PORT_NUMBER_OLED 
 +    #define LARGE_PORT_NUMBER_OLED          0 
 +#endif 
  
 //--------------------------------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------------------------------
Zeile 390: Zeile 420:
 #define DCC_OFFSET                          0           // -4 = Roco-Offset für Roco-Zentrale,  0 = DCC addresses start at #211, using this parameter you can use other DCC ranges in case of using several turntables with one central station or you rewuire other address ranges #define DCC_OFFSET                          0           // -4 = Roco-Offset für Roco-Zentrale,  0 = DCC addresses start at #211, using this parameter you can use other DCC ranges in case of using several turntables with one central station or you rewuire other address ranges
  
-#define DCC_WAITING_TIME                    350         // waiting time [ms] for further DCC-tickets before carrying out the DCC command+#define DCC_WAITING_TIME                    200 //350         // waiting time [ms] for further DCC-tickets before carrying out the DCC command
  
 #define DCC_MAERKLIN_7687_COMPATIBLE        1           // 1 = DCC-Befehle nur für den 1. Halbkreis der DS verwenden. In Verbindung mit der Drehrichtung kann trotzdem jeder Port so angefahren werden, dass das DS-Haus richtig steht, notwendig bei Verwendung einer PC-Steuerung! #define DCC_MAERKLIN_7687_COMPATIBLE        1           // 1 = DCC-Befehle nur für den 1. Halbkreis der DS verwenden. In Verbindung mit der Drehrichtung kann trotzdem jeder Port so angefahren werden, dass das DS-Haus richtig steht, notwendig bei Verwendung einer PC-Steuerung!
Zeile 408: Zeile 438:
 // Es werden nur für die Ports im ersten Halbkreis DCC-Adressen benötigt // Es werden nur für die Ports im ersten Halbkreis DCC-Adressen benötigt
 // Bei 24 Ports braucht man hier also 12 DCC-Adressen (= 12 Zeilen) // Bei 24 Ports braucht man hier also 12 DCC-Adressen (= 12 Zeilen)
-// Die erste Zahl in der Klammer ist immer fortlaufend und startet bei 1. Sie hat nichts mit der Portnummer oben zu tun (die kann nicht-fortlaufend sein).+// Die erste Zahl in der Klammer ist immer fortlaufend und startet bei 1. Sie hat nichts mit der Portnummer oben zu tun (die kann nicht fortlaufend sein).
 // Pro DCC-Adresse gibt es 2 Befehle bzw. Richtungen: RED und GRN // Pro DCC-Adresse gibt es 2 Befehle bzw. Richtungen: RED und GRN
  
anleitungen/bauanleitungen/locoturn_v10/150_locoturn_parameter.1727451075.txt.gz · Zuletzt geändert: von domapi