Hi,
ich benutze keine Delays, sondern Timer und Zustandsvariablen.
Das ist aber im Code von Dominik B. auch schon so gewesen und es ist daher kein großer Aufwand es so zu ändern, wie du es beschreibst (sofort für Messungen bereit).
Ob 8 Sekunden oder unendlich ist dann auch nur noch Geschmackssache.
Zitat von RichyD im Beitrag #119
Oder ich habe deine Fehlerbeschreibung falsch interpretier
Hast du tatsächlich

Das unendliche Anzeigen ist nicht das Problem, das
sofort nach einer Messung "frei gebe" aber leider schon.
Und das Problem hat man übrigens nicht nur mit langen Zügen, sonder sogar mit nur einer Lok
Beispiel: Lichtschranke 1 ist links, Lichtschranke 2 rechts, gefahren wird von links (1) nach rechts (2)
Momentan würde folgendes passieren:
- Lichtschranke 1 wird aktiv, die Messung beginnt und es wird nur noch auf Lichtschranke 2 "gehorcht".
- Lichtschranke 2 wird aktiv, das Ergebnis wird ausgegeben und währenddessen (momentan 8 Sekunden) ist die Messung "gesperrt".
- Löst die Lok, oder ein Wagen erneut eine der Lichtschranken aus, passiert nichts, da sie für 8 Sekunden nicht ausgewertet werden.
Deine Idee wäre:
- kommt direkt nach der Messung ein weiterer Zug an eine der Lichtschranken, wird eine neue Messung gestartet.
Das bedeutet aber, dass die Schaltung sofort nach dem Berechnen der Geschwindigkeit wieder die Lichtschranken "frei gibt"
Zu diesem Zeitpunkt befindet sich aber der gesamte Zug zumindest noch "über" der Lichtschranke 2.Die Wahrscheinlichkeit, dass die Lichtschranke 2 nochmal auslöst ist natürlich höher, je länger der Zug ist.
Ist der Zug so lang, dass er auch noch Lichtschranke 1 bedeckt, ist die Wahrscheinlichkeit für eine Falschauslösung nochmal höher.
Wie soll die Schaltung erkennen, dass es sich noch um den selben Zug handelt?Ich denke das Sperren der Messung für eine bestimmte Zeit ist die einzige Lösung für dieses Problem

Du würdest mit deinem Kaffee zurück kommen und es wird z.B. 25km/h angezeigt obwohl der Zug eigentlich mit z.B. 60km/h gemessen wurde.
Oder noch schlimmer, die Schaltung sagt "Messung aktiv" weil nur eine der beiden Lichtschranken erneut ausgelöst wurde.
Dann läuft die Messung entweder, bis der nächste Zug einfährt, oder eben bis die Messung nach 40 Sekunden als ungültig erkannt wird.
Den Richtigen Wert kannst du in beiden Fällen nicht mehr ablesen...
Klar könnte man die 8s auch auf 4s herabsetzen, falls man nur kurze Züge einsetzt und 4s reichen, um sicher von der Messstrecke runter zu fahren.
Und man könnte auch jetzt schon, ohne jede weitere Änderung, die gemessene Geschwindigkeit unendlich lange anzeigen lassen.
Um das Sperren der Messung für eine bestimmte Zeit wird man aber nie herum kommen

Gruß,
Janik