Beiträge von Kusi

    Des Rätsels Lösung ist ganz einfach: ein 40' Container ist im Original 2.591 m hoch, ein 53' 2.896 m. Das ergibt umgerechnet auf Spur N 16.2 mm gegenüber 18.1 mm. Ergo müsste ein MAXI-IV (mit 2 Containern) ~3.8 mm höher sein. Quelle: https://de.wikipedia.org/wiki/…ntainer#Standardcontainer

    Ich kann auf ein MAXI-IV auch zwei 40' Container stellen und dann wären sie wieder Gleich hoch. ;) Aber du kannst auch den oberen Container durch ein 53' Container ersetzen. Du siehst, Kombinationen gibt es viele.

    Der Rückmelder sollte aber eher in der Nähe des Gleisabschnittes sein, welcher er überwachen soll. So sind die Kabellängen kurz. Dann würde es mit 0.5 gehen. Aber je weiter die Strecke zum Rückmelder ist, desto weniger gut wird die Rückmeldung sein.

    Was sein könnte, dass die Leitung zu lange ist vom Rückmelder bis zur Zentrale. Hast du mal die Module in der nähe der Zentrale angeschlossen und so getestet?


    respace99

    Lenz kennt kein S88. Du kannst keine Anzahl einstellen. Lenz hat den RS Bus für die Rückmeldungen.

    Ich habe einen Maxi-IV auf einem Stück Peco Schiene gemessen. Mit Schiene und Schwellen zusammen ist der Wagen mit zwei Container 44 mm hoch. Wenn ich nun die Höhe der Peco Schiene abziehe, käme ich auf ~40mm ab SOK.

    Der einzige, der mir für diese Modelle einfällt, ist Mende. Zumindest den Modularwagen gäbe es noch. Beim ADmpsz gab es auch welche, aber die scheinen mittlerweile ausverkauft zu sein. Es gibt nur noch den BDmpsz in den alten Farben.


    Mir wäre es auch recht, wenn LS Models diese Modell umgesetzt hätte. Aber die Seite von LS Models ist und bleibt eine Katastrophe. Infos finden sich dort gar nicht.

    Cool, wenn du den Fehler gefunden hast. Daher auch mein Tipp, Variablen, die nicht veränderbar sind, als Konstanten definieren. Dann hätte es einen Compile Fehler gegeben. ;) Einfach für die nächste Version des Programms.

    Noch etwas. Definiere die Variablen, die wirklich nicht überschrieben werden sollen, als sogenannten "Konstanten". Durch die Anweisung servoPositionGeschlosse -= 1 überschreibst du die Variable servoPositionGeschlossen mit einem neuen Wert, was aber nicht passieren dürfte.


    Eine Konstante kannst du in C mit dem Schlüsselwort const definieren oder ansonsten verwende #define. Wie bei meinen Beispiel oben.


    Folgende Variablen sehen für mich nach Konstanten aus.
    int ledPin = 13;
    int ledPin2 = 12;
    int ledPin3 = 7;
    int servoPin = 9;
    int magnetSensor1Pin = 8;
    int magnetSensor2Pin = 10;


    int speakerPin = 4;


    int servoPositionOffen = 60;
    int servoPositionGeschlossen = 140;


    int servoGeschwindigkeit = 1;


    int blinkZeit = 5000;

    Ich habe kurz den Code überflogen. Dabei sind mir einige Dinge aufgefallen.


    1. myState


    In welchem Zustand sich der BUe befindet. Ich würde prüfen und setzen der Variable ausserhalb des switch/case Statement machen. Das switch/case soll nur die Anweisungen enthalten, die für die Schranken notwendig sind.


    Für die Zustände würde ich hier mit Konstanten arbeiten. z. B. oder so ähnlich
    #define BUE_OFFEN 0
    #define BUE_SCHLIESSEN 1
    #define BUE_GESCHLOSSEN 2
    #define BUE_OEFFNEN 3
    ...


    Die kannst du dann auch für die switch/case verwenden.



    2. Potentielle Code Stolpersteine


    Code
    servoPosition = servoPosition += 1;


    entweder
    servoPosition = servoPosition + 1
    oder
    servoPosition += servoPosition


    Das gleiche ist auch beim myState 3 der Fall. Nur dort mit -=


    Im Case 2 hast du ein if (servoPosition == servoPositionGeschlossen) jedoch hast du das Gegenteil im Case 3 nicht.


    3. Fehler im Code


    Dein Fehler ist hier zu suchen.

    Code
    else servoPosition = servoPositionGeschlossen -= 1;


    servoPositionGeschlossen sollte wohl servoPosition heissen. Im Prinzip würde der Servo immer in der geschlossen Position bleiben, weil du immer 140 - 1 zuweisen tust.

    Die Zimo Decoder kannst du bei vielen Händlern beziehen. Ich habe sie meistens aus verschiedenen Quellen bezogen. Einen bevorzugte Quelle für diese Decoder habe ich nicht. War meistens davon abhängig, wo sie gerade am Lager waren.