Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#1 von Draisine , 29.11.2025 13:06

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

Dateianlage:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
MoBa-Speed_Zuglaengenmessung.zip

 
Draisine
CityNightLine (CNL)
Beiträge: 1.691
Registriert am: 16.01.2019
Ort: Darmstadt
Gleise Roco Line + geoLine + Piko + LGB, Fahrzeuge: alles mögliche neu und alt
Spurweite H0, G
Steuerung Digikeijs DR5000 + Upgrade YD9401, YD7010, MD-Zentrale, Bausteine Digikeijs + YAMORC, ESU
Stromart DC, Digital

zuletzt bearbeitet 30.11.2025 | Top

RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#2 von berndausb , 30.11.2025 21:40

Hallo Thomas,
schoene Idee, schaue ich mir auch mal genauer an.
Wg. der Abweichung der Zuglaenge: Dein Oval zum testen scheint recht klein zu sein (ist leider im youtube nicht abgebildet). Kommt der Fehler evtl. durch die Kombi Wagenlaenge/Ueberhang und Kurvenradius zustande? Enger Kurvenradius hiesse ja, dein Wagen mit z.B. 30cm Laenge hat effektiv (Luftlinie) nur noch 29cm...
[EDIT]Argh! Genau anders rum, der 30cm Wagen Luftlinie in der Kurve hat dann z.B. 31cm Gleislaenge-Mitte! Man sieht auf manchen Moba-Filmen ja auch so eine Art "pumpen" wenn die Zuege in enge Kurven gehen[/EDIT]
Nur so ein Gedanke.

Gruss, - Bernd


berndausb  
berndausb
RegionalExpress (RE)
Beiträge: 70
Registriert am: 23.12.2023
Ort: Badisch Sibirien
Spurweite H0
Stromart DC, Digital

zuletzt bearbeitet 30.11.2025 | Top

RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#3 von Draisine , 01.12.2025 09:34

@berndausb

Hallo Bernd,

nein das wird es nicht sein. Die gemessene Geschwindigkeit ist ja bei den gezeigten Durchgängen konstant. Max. eine Abweichung von 1 km/h. Die Zuglänge wird mit 144 cm ja auch als konstant ausgegeben. Also die Ergebnisse sind reproduzierbar. Die Messung erfolgt auf einem geraden Gleisstück.

Die Referenzlänge (Abstand zwischen den Lichtschranken habe ich mit einem Maßband auf ca. 5 mm genau gemessen. Die Zuglänge ist gröber gemessen. Zum Einen weil der gesamte Zug nicht auf eine Gerade gepaßt hat, ein kleiner Teil stand in der Kurve (wirklich nur ein kleiner Teil) zum anderen weil da natürlich auch Kupplungen dran sind bei denen ich nicht genau weiß, ob ich die überhaupt von der Messung her richtig erfaßt habe. Die Messung der Zuglänge mit dem Maßband war halt tatsächlich mehr eine grobe Schätzung als eine genaue Messung.

Dann kommt noch dazu, daß ich zwar die Referenzlänge der Lichtschranken relativ genau messen konnte, ich allerdings nicht berücksichtigt habe ab wann die Teile tatsächlich ansprechen bzw. auch wieder freigeben. Das ergibt in der Summe möglicherweise auch nochmal ein cm Ungenauigkeit +-.
Und zu guter letzt, ich habe im Programm eine Verzögerung für die Aus-Meldung der Lichtschranken von 500 ms vorgesehen. Das bedeutet erst wenn innerhalb dieser Zeit eine Aus-Meldung ununterbrochen ansteht, wird tatsächlich auf Aus erkannt. Diese Zeit ziehe ich natürlich von der gemessenen Zeit für die Durchfahrt wieder ab. Es kann allerdings sein, daß während die Verzögerungszeit die Lichtschranke wieder kurz aktiviert wird, womit die Messung neu startet. Das ergibt auch nochmal einen kleinen Fehler. Und ich habe natürlich auch noch Programmlaufzeiten. Die sind im Vergleich zu den Meßzeiten natürlich sehr kurz, können aber das Ergebnis auch noch minimal verfälschen. Deswegen habe ich im Programm Korrekturfaktoren (0 - 255) für die Referenzlänge und einen Korrekturparameter (in cm) zur Berücksichtigung der Kupplungslängen eingebaut mit denen ich ein Feintuning machen kann. Wenn man Lichtschranken verwendet, insbesondere die sehr günstigen China-Teile, kommt es relativ oft vor, daß die trotz scheinbarer Anzeige des Belegtmelderzustands zwischendrin auch schon mal den einen oder anderen Peaks drin haben der genau dem anderen Zustand entspricht. Das sieht man nur wenn man das Ausgangssignal sich per Oszilloskop anschaut bzw. wenn man sich die gemessenen Meldungen am Monitor ausgeben läßt. Die Ursachen hierfür sind im Ausgangssignal des Lichtschrankensensors oder im Falle der China-Lichtschranken mit Komparator im Ausgangssignal des Komparators zu suchen. Hier treten vereinzelt Signale auf die gerade an der Erkennungsgrenze LOW/HIGH für den Arduino liegen. Die Nutzung einer Hyteres um die Erkennung zu verbessern hilft hier auch nur wenig. Solche Fälle kommen auch mit Hyteres vor. Bei der Moba-Speed-Anwendung spielt das keine Rolle. Hier ist nur wichtig, daß heir jeweils nur ein Peak der Belegtmeldung erfaßt wird. Bei der Zuglängenmessung muß das über die gesamte Messung erfüllt sein. Was physikalisch aber nicht garantiert werden kann. Deswegen meine softwaremäßige Lösung mit verzögerter Aus-Meldung.

Der gezeigte Aufbau mit den eben mal gemessenen Längen dient im ersten Schritt nur dazu die Machbarkeit zu prüfen bzw. zu zeigen. Und sind wir mal ganz ehrlich, die genannte Abweichung von 2 cm entsprechen ca. 3 % meiner Referenzlänge bzw. 1,4 % meiner gemessenen Zuglänge.

Ich wollte eh die Tests nochmal mit unterschiedlichen Zuglängen und Geschwindigkeiten durchführen, um zu sehen welchen Einfluß das auf die Meßgenauigkeit haben wird. Mir ging es jetzt erst einmal nur darum zu sehen, ob ich das prinzipiell verwenden kann. Genau genommen geht es bei mir darum zu prüfen, ob ein in Richtung Schattenbahnhof fahrender Zug in meine Schattenbahnhofsgleise paßt. Diese sind sind in zwei etwa gleich lange Abschnitte unterteilt, bei denen Züge per ABC angehalten werden und bei denen ein automatisches Aufrücken durch eine Steuerung je Schattenbahnhofgleis erfolgt. Mir geht es also erst einmal darum folgendes festzustellen:

- Paßt der Zug in einen kurzen Abschnitt --> anhalten auf einem kurzen Abschnitt (1. oder 2. Abschnitt)
- Paßt der Zug in einen langen Abschnitt --> anhalten auf zwei kurzen Abschnitten (1. und 2. Abschnitt)
- Ist der Zug zu lang für zwei Abschnitte --> Zugdurchfahrt

Das soll über eine übergeordnete Steuerung überwacht werden ind der die Belegtmelderzustände der Abschnitte des Schattenbahnhofs eingehen und die gemessenen Zuglängen. Da ich auch bei den ABC-Anhaltewegen noch großzügig Toleranzen berücksichtigen muß, spielen die aufgetretenen Fehler bei der Zuglängenmessung eigentlich keine Rolle mehr. Wenn die bei weiteren weiteren Messung nicht deutlich größer werden.

Das nur am Rande warum ich das überhaupt mache. Darum geht es hier aber nicht. Ich wollte das Ergebnis der Zuglängenmessung, eigentlich eine recht simple Geschichte, hier nur zeigen. Vielleicht hat ja jemand anderes noch Bedarf für so etwas. Die Ausgangsidee der Messung ist auch nicht von mir. Moba-Speed ist im Internet veröffentlicht. Ich habe mir halt überlegt, daß man das ganze relativ einfach um eine zuverlässige Zuglängenmessung erweitern kann. Das ist der eigentliche Knackpunkt dabei. Man braucht Lichtschranken die wirklich zuverlässig funktionieren und möglichst punktgenau melden und die auch zuverlässig melden. Also einerseits wenig fremdlichtempfindlich sind und andererseits stabil arbeiten. Hierzu nutze ich die Erfahrungen, die ich im Zusammenhang mit meinen Lichtschrankenentwicklungen gewonnen habe. Hierzu gibt es auch irgendwo im Forum einen Bericht von mir. Eine älteren bei denen ich die Lichtschranken mit 1000 Hz ansteuere (das Konzept habe ich wieder verworfen) und einen neueren Bericht mit gepulsten Lichtschranken (funktionell ähnlich den Zimo SN1D).

Zusammengefaßt, ich habe das Rad nicht neu erfunden sondern greife auf Bekanntes zurück und habe es meinen Bedürfnissen hin angepaßt. Das zeige ich hier und stelle es der Öffentlichkeit zu freien Verwendung zur Verfügung. Man kann den Sketch natürlich seinen eigenen Bedürfnissen hin auch anpassen. Die Kosten der Schaltung sind relativ gering. Man benötigt einen Nano, ein Display und zwei Lichtschranken. Und eine eine 5 V-Stromversorgung für den USB-Anschluß des Arduino. Und ggf. auch für die Lichtschranken. Je nachdem welche man verwendet auch mehr als 5 V.

Grüße Thomas


 
Draisine
CityNightLine (CNL)
Beiträge: 1.691
Registriert am: 16.01.2019
Ort: Darmstadt
Gleise Roco Line + geoLine + Piko + LGB, Fahrzeuge: alles mögliche neu und alt
Spurweite H0, G
Steuerung Digikeijs DR5000 + Upgrade YD9401, YD7010, MD-Zentrale, Bausteine Digikeijs + YAMORC, ESU
Stromart DC, Digital

zuletzt bearbeitet 01.12.2025 | Top

RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#4 von Draisine , 01.12.2025 10:33

Ergänzung zu meinem vorausgegangenen Beitrag:

ich hatte gerade nochmal Messungen mit zwei einzelnen Loks mit 19 cm und 21 cm Länge und unterschiedlichen Geschwindigkeiten gemacht. Die ermittelte Länge weicht um maximal 1 cm ab. Das paßt. Wie bereits gesagt ist es wichtig, daß die Lichtschranken sauber funktionieren. Bei der Dampflok hatte ich auch eine Messung bei höherer Geschwindigkeit von berechneten 400 km/h und 0 cm Länge. Da haben die Lichtschranken das Objekt wohl nicht richtig erfaßt bzw. bei der zweiten Lichtschranke haben meine LED-Panels der Raumbeleuchtung wohl eingestrahlt. Das ist aber nachvollziehbar. Deswegen schrieb ich ja, daß zuverlässig funktionierende Lichtschranken die Voraussetzung zur ordnungsgemäßen Messung sind. Im Testaufbau verwende ich momentan nur nicht Fremdlicht stabilisierte Sensoren ohne zusätzliche besondere Ansteuerungen.

Für mich paßt die Genauigkeit. Besser als ich gedacht habe.

Grüße Thomas


 
Draisine
CityNightLine (CNL)
Beiträge: 1.691
Registriert am: 16.01.2019
Ort: Darmstadt
Gleise Roco Line + geoLine + Piko + LGB, Fahrzeuge: alles mögliche neu und alt
Spurweite H0, G
Steuerung Digikeijs DR5000 + Upgrade YD9401, YD7010, MD-Zentrale, Bausteine Digikeijs + YAMORC, ESU
Stromart DC, Digital


RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#5 von ModellbahnTom , 01.12.2025 11:35

Hallo Thomas,
die gezeigte zusätzliche Möglichkeit der Zuglängenmessung als Bestandteil des MoBa-Speed ist genial

Da ich seit etwa einem Jahr das MoBa-Speed mit Reflexlichtschranken in einem meiner durchgehenden Bahnhofsgleise verbaut habe und zum einmessen/einstellen der Geschwindigkeiten meiner Triebfahrzeuge nutze, sollte es leichtes sein die zusätzliche Funktion zu integrieren.

Viele Grüße
Thomas


 
ModellbahnTom
InterCity (IC)
Beiträge: 730
Registriert am: 01.06.2021
Ort: Sachsen-Anhalt
Gleise C- und K-Gleis
Spurweite H0
Steuerung CS3+
Stromart AC, Digital


RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#6 von Draisine , 01.12.2025 13:53

Zitat von ModellbahnTom im Beitrag #5
Hallo Thomas,
die gezeigte zusätzliche Möglichkeit der Zuglängenmessung als Bestandteil des MoBa-Speed ist genial

Da ich seit etwa einem Jahr das MoBa-Speed mit Reflexlichtschranken in einem meiner durchgehenden Bahnhofsgleise verbaut habe und zum einmessen/einstellen der Geschwindigkeiten meiner Triebfahrzeuge nutze, sollte es leichtes sein die zusätzliche Funktion zu integrieren.

Viele Grüße
Thomas

Probiere es aus, der Sketch liegt bei. Je nach verwendeten Lichtschranken könnte die Genauigkeit leiden. Sollte es nicht richtig funktionieren, dann ggf. auch mal die Verzögerungszeit bei der Definition der globalen Variablen erhöhen. Je höher die Zeit, umso ungenauer kann allerdings die Messung werden. Die China Lichtschranken beim Bauvorschlag von Moba-Speed, sofern Du die verwendest haben ggf. den Nachteil, daß sie die Wagenzwischenräume nicht erkennen und damit jedesmal die Wartezeit neu gestartet wird. Evtl. mußt Du Deine Lichtschranken gegen geeignete tauschen. Je nachdem was Du aktuell verwendest. Ich verwende Lichtschranken im Gleis, diese erfassen auch die Kupplungen.

Meines Wissens funktioniert die Schaltung in beiden Richtungen, so wie Moba-Speed. "Meinen" deswegen, da ich in der ersten Version nur eine Richtung drin hatte. Teile mir Deine Erfahrungen mit, ich habe es bislang nur bei meiner Testkonfiguration ausprobiert. Dort geht es einwandfrei.

Grüße Thomas


 
Draisine
CityNightLine (CNL)
Beiträge: 1.691
Registriert am: 16.01.2019
Ort: Darmstadt
Gleise Roco Line + geoLine + Piko + LGB, Fahrzeuge: alles mögliche neu und alt
Spurweite H0, G
Steuerung Digikeijs DR5000 + Upgrade YD9401, YD7010, MD-Zentrale, Bausteine Digikeijs + YAMORC, ESU
Stromart DC, Digital

zuletzt bearbeitet 01.12.2025 | Top

RE: Einfache Schaltung zur Zuglängenmessung von Modellbahnzügen im laufenden Betrieb, Testversion

#7 von ModellbahnTom , 07.12.2025 21:38

Hallo Thomas,

Zitat von Draisine im Beitrag #6
Probiere es aus, der Sketch liegt bei.

Ich habe das WE genutzt, um Deine Zuglängenmessung mit der bereits seit einiger Zeit bei mir in Betrieb befindlichen MoBa-Speed zu testen - hat grundsätzlich auf anhieb funktioniert.
Wegen der Platzverhältnisse habe ich die originale IR-Diode und IR-Transistor der HW-201 Lichtschrankenmodule durch kleine SMD-Bauteile ersetzt, was für den Einsatz als reine Geschwindigkeitsmeßstrecke sehr gut funktionierte. Leider reicht jedoch die Empfindlichkeit nicht aus, um das IR-Licht sicher und durchgehend vom schwarzen, zerklüfteten Wagenboden durchgehend zu reflektieren. Kurzum habe ich dann wieder die originalen Bauteile montiert - etwas knapp mit der Höhe im C-Gleis, aber mit einem kleinen Ausschnitt im Gummikork passt es.
Mit den Originalbauteilen funktioniert auch die Erkennung des ganzen Zuges inkl. der Kupplungen zwischen den Wagen durchgängig problemlos.

Zitat von Draisine im Beitrag #6
Meines Wissens funktioniert die Schaltung in beiden Richtungen, so wie Moba-Speed.

Ja, funktioniert in beiden Richtungen reproduzierbar mit erstaunlich hoher Genauigkeit, auch bei unterschiedlichen Geschwindigkeiten.

Für die später geplante PC-Steuerung wird die Meßstrecke zur Ermittlung der Zuglängen sehr hilfreich sein.

Vielen Dank für die Entwicklung und zu Verfügung stellen des Arduino-Sketches.

Viele Grüße
Thomas


Draisine hat sich bedankt!
 
ModellbahnTom
InterCity (IC)
Beiträge: 730
Registriert am: 01.06.2021
Ort: Sachsen-Anhalt
Gleise C- und K-Gleis
Spurweite H0
Steuerung CS3+
Stromart AC, Digital


   

MTTM Servomodul reset
Welche Kupplungen benutzt ihr

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz