Für meine Schaltungen benötige ich eine Zuglängenmessung im laufenden Betrieb, die an einen übergeordneten Steuerrechner (vermutlich Arduino) weitergeleitet wird, um entsprechende Schaltaufgaben auszuführen.
Die Schaltung basiert auf dem Bastelvorschlag Moba-Speed zur Ermittlung der Geschwindigkeit von Modellbahnzügen:
www.n-modellbahn.de/moba-speed/
Die dargestellte Schaltung mit zwei Lichtschranken, einem Arduino Nano und einem Display ist recht simpel. Auch das Steuerprogramm ist relativ einfach.
Den Kern des Programms mit Displayausgabe habe ich weitestgehend unverändert beibehalten. Auch der Hinweis auf den Ursprung ist noch mit enthalten. Der Sketch wurde von mir um eine Zuglängenmessung erweitert und die Erfassung über Reflexlichtschranken durch verzögerte Freigabe verbessert. Für die Zuglängenmessung ist das fehlerfrei Ansprechen und die Freigabe der Lichtschranken Voraussetzung. Für die Geschwindigkeitsmessung in der Ursprungsausführung von Moba-Speed weniger von Bedeutung.
Die Messung erfolgt über zwei im Gleis eingebaute Reflexlichtschranken. am Meßpunkt 1 und 2. Über die im definierten Abstand befindlichen Meßpunkte werden die Zeiten zur Berechnung der Durchschnittsgeschwindigkeit wie in Moba-Speed und am zweiten Meßpunt die Zeit vom Zugeintritt bis zum Verlassen des Zuges zur Ermittlung der Zuglänge aus der vorher ermittelten Durchschnittsgeschwindigkeit berechnet.
Es handelt sich um einen Testaufbau. Die Meßstrecke beträgt ca. 705 mm, die Testzuglänge beträgt ca. 141 cm. Die Messung ergibt bei unterschiedlichen Geschwindigkeiten Werte von 143 cm bis 144 cm. Die Unterschiede dürften im Wesentlichen auf externe Meßfehler bei der Bestimmung der Referenzlänge und der Zuglänge begründet sein.
Über Korrekturfaktoren im Programm könnte die Meßgenauigkeit noch optimiert werden. Für den Testaufbau habe ich das nicht gemacht, hier geht es nur um die prinzipielle Machbarkeit.
Die Kenntnis der Zuglänge wird von mir für weitere schaltungstechnische Maßnahmen im Betrieb benötigt. Je nach erforderlicher Genauigkeit wird die Information zur gemessenen Zuglänge über 8 bit oder 16 bit nach außen weitergegeben. Zweckmäßigerweise über eine serielle Schnittstelle (z. B. I2C). Die ist im Programm noch nicht enthalten. Evtl. sogar nur nach Vorauswahl dreier möglicher Zuglängen in 2 bit.
Grundsätzlich könnte man statt der Reflexlichtschranken natürlich auch Schalt- und Kontaktgleise, Hall-Sensoren mit Fahrzeugmagneten oder ähnliches verwenden. Den Sketch müsste man dazu selbstverständlich anpassen. Ich habe Reflexlichtschranken verwendet, da diese eine sehr genaue und bei Verwendung geeigneter Lichtschranken auch zuverlässige Ergebnisse liefern. Zuverlässig funktioniert bspw. die Lichtschranke SN1D von Zimo oder auch meine funktionell ähnliche Selbstbaulösung (irgendwo im Forum beschrieben). Für den Testaufbau habe ich vereinfacht nur in das Gleisbett eingebaute Sensoren TCRT5000 verwendet ohne jegliche Sekundärbeschaltung (Vorwiderstand 220 Ohm für den Anaodenanschluß nicht vergessen!). Die Sensoren wirken über den Open Kollektor des Empfangstransistors direkt auf die Meßeingänge des Nano.
Den Sketch für den Nano habe ich als Anlage beigefügt. Wer Bedarf und Interesse hat darf sich gerne bedienen. Weitergehende Informationen zu Moba-Speed ohne Zuglängenmessung im o. g. Link.
Hier noch eine Demo:
https://youtu.be/C273dIDHsTQ
Als Ergänzung hier noch der Anschluß des TCRT5000 an den Nano. Der Anschluß Nano Inp. (OC) kommt an die Eingangspins an denen bei der Ursprungsversion Moba-Speed das OUT-Signal der Lichtschranken angeschlossen ist. Anode über Widerstand an Plus und Kathode bzw. Emitter des Fototransistors an GND. Zum Ausprobieren reicht das erst einmal vollkommen aus. Bei einer endgültigen Lösung ist es allerdings besser professionellere und zuverlässigere Lichtschranken mit integrierter Signalverarbeitung zu verwenden. Je nach System und je nachdem ob die bei Ausgangssignal LOW (wi im Sketch) oder bei HIGH eine Aktivierung melden, ist die Abfrage der Lichtschranken im Sketch anzupassen.
Grüße Thomas

