• Hallo TT-Modellbahner, schön, dass du zu uns gefunden hast.
    Um alle Funktionen nutzen zu können, empfehlen wir dir, dich anzumelden. Denn vieles, was das Board zu bieten hat, ist ausschließlich angemeldeten Nutzern vorbehalten. Du benötigst nur eine gültige E-Mail-Adresse und schon kannst du dich registrieren.
    Deine Mailadresse wird für nichts Anderes verwendet als zur Kommunikation zwischen uns.
    Die Crew des TT-Boardes

Analog automatisch abbremsen und anfahren - mit Arduino

... Du brauchst nicht unbedingt die Geschwindigkeit ermitteln, es reicht die Zeit wie lange der Zug für die feste Entfernung braucht. ...
Zeit pro Stecke ist doch Geschwindigkeit :gruebel:

... Ich nehme an beim Bremsvorgang arbeitest du auch mit der Zeit ( den PWM Signal von Fahrt auf Kriechen zu reduzieren). ...
Nein, nicht mit Zeit. Das De-/Inkrement wird nur größer bzw. kleiner. Einen weiteren Teiler kann man über den Poti Einstellen.

... Die Optostecke kann überall sein, denn du musst nur einmal pro Zug die Zeit ermitteln...

Dann dürfte aber kein Zug den anderen überholen können/dürfen in einem Bahnhofbereich/Abzweigungen. Oder man müsste von einem zum anderen Arduino weitereichen welcher Zug kommt. Auch mit mehr/weniger Wagons könnte es problematisch werden, an Steigungen und Abfahrten, da dann die Geschwindigkeit sich bestimmt ändert. Ich denke eine Messung pro Block wäre ratsamer. Der Arduino kann das auch, nur die Leiterplatte passt dann nicht mehr dazu.


Ich schaue mir erstmal einen Probebetrieb mit drei Blöcken auf dem Testoval an. Ich habe eine sehr langsame und eine sehr schnelle Lok hier. Vielleicht genügt mir ja auch das bisherige. Bevor ich alles übern haufen werfe.

Obwohl ich ja noch Weichenabfragen integrieren wollte, als UND Bedingung zum Frei melden.

Kann man die Loks eigentlich umbauen, damit man sie auf ähnliche Grundgeschwindigkeit bekommt? Sowas wie ein Widerstand oder Dioden einbauen?


Was ich mir vorstellen könnte, das der GBM Sensor zu ungleichmäßig meldet, und somit zu ungenau die Geschwindigkeit auf 1cm misst. Auf 10cm wäre die Varianz vermutlich kleiner.


Hach, kommt Zeit, kommt Rat :schiel:
 
@Andre1980
Wenn man keine Lichtschranke benutzt, dann ist 1cm Messstrecke zu wenig, denn die Kontaktgabe bei Stromfühlern ist erst dann sicher, wenn ein Fahrzeug mindestens zur Hälfte im Abschnitt ist. Damit der Messfehler nicht zu groß wird, sollte man daher diese Mindestlänge nehmen.
 
Ja das ist die Geschwindigkeit, aber du brauchts nur die Zeit das Dekrement zu bestimmen.
Normalerweise auf einer Blockstrecke die Züge fahren schön brav hintereinander, und du kannst die Bremsstrecke (Dekrements) nach dem schnellsten Zug berechnen. Also die Optostrecke soll immer am Anfang der Blockstrecke sein, nachher gibt es normalerweise keine Überholung.

Kleinere Geschwindigkeitunterschiede von Loks kannst Du mit Dioden ausgleichen. ( In Serie mit Motor).
 
Wenn man schon die Möglicheit hat, die tatsächliche Geschwindigeit der einzelnen Loks(Züge) zu messen, weshalb das aus der finstersten Steinzeit stammende Diodenanpassungsgerödel? Das war notwendig, als die elektronischen Möglicheiten noch nicht so weit waren und man deshalb mit konstanter Spanung fuhr. Die Unterschiede durch die Zuglasten kann man damit auch nicht kompensieren. Es sei denn, man fährt immer die gleichen Zugzusammenstellungen wie im Vorführbetrieb- na danke. Dann nutzt man aber die Möglichkeiten, die der Arduino bietet, bei weitem nicht aus.
 
Da hast du auch wieder Recht.

Aber ich kenne das Steinzeit Diodengerödel noch nicht :D

Erstmal schauen ob das bisherige überhaupt mit den Miniblöcken bei uns harmoniert. Eine weitere Trennstelle zum Geschwindigkeit messen ist dann auch relativ schnell gemacht. Wäre natürlich einfacher gewesen das gleich am Anfang in die Anlage zu integrieren. Jetzt ist es schon etwas Abenteuerlich. :D
 
Ich dachte deswegen baust Du deine Blöcke die Züge mit verschiedenen Geschwindigkeiten hintereinander fahren zu lassen. Das tut das automatische Blocksystem. Natürlich wenn du einen langsammen Zug vor einem ICE auf die Strecke schickst das ICE will beim jedem Blocksignal bremsen und halten. (Wie in der Wirklichkeit. :mad:) Deine Aufgabe ist den Bremsvorgang an ICE an zu passen.

Eine Modellbahnsteuerung ist immer abendteuerlich...deswegen ist interessant, und gibt jede Menge Möglichkeiten....
 
https://dl.dropboxusercontent.com/s/jk4wldxjrvimdih/AnfBremsTest2.mp4

Einige komische Sachen sind mir beim Testen aufgefallen.

Ein kurzes Auflegen eines 5k6 oder 2k Widerstandes auf die Gleise brachte keine GBM Auslösung.

Später beim Testen mit den Loks, ist mir aufgefallen das der Arduino die Züge im Bremsabschnitt nicht erkennt. Laptop an den Arduino und den GBM auf dem serialen Monitor anzeigen lassen. Der Wert im Bremsabschnitt betrug nur noch 29 (normal 160). Ein herabsetzen des Schwellwertes auf 20 in der Software brachte wieder eine einwandfrei Besetzmeldung. Aber woran liegt das? Ein Block allein bringt im Bremsbereich 160.

Die Blöcke an sich müssen schon ausreichend Länge haben, damit man ein schönes Ergebnis bekommt. Bei Blöcken unter 30cm hat man schnell nur ein einziges Inkrement wenn die Züge etwas schneller unterwegs sind. Vielleicht setze ich den delay Wert noch etwas runter. Macht mir bissl sorgen bei den Mini Bahnhöfen auf unserer Platte. Aber besser als ohne ist es auf jeden Fall.

Ein Geschwindigkeit Mess Bereich hat dann auf unserer Platte dann eher wenig Platz, wenn die Blocklänge jetzt schon eher zu kurz ist. Auf dem Testoval werde ich es aber bestimmt mal ausprobieren in Zukunft. schon rein aus dem Intresse herraus.
 
Zuletzt bearbeitet:
Das ist genau das Problem mit diesen primitiven GBMs. ( leider oft auch von Modellbahnindustrie verwendet).
Für eine zuverlässige Funktion brauchst du wenigstens die Schaltung was Atshci Kollege presäntiert hat ( wenn schon Chubb's Schaltung zu kompliziert ist. :) )
Sonst funktioniert die Blocksteuerung ganz schön.:zustimm::zustimm:
Für die Optostrecke brauchst du keinen extra Block, diese Strecke kann überall etwa 10-20 cm nach einem Signal sein. ( dort meistens die Züge fahren schon mit Streckengeschwindigkeit)
 
IMG_3759.jpg
Man hat ganz viele Möglichkeiten.

Für Arduino z.B. Gibt es fertige reflex Optokupplers ( siehe Bild) . Diese reagieren auf hellere Flächen, (z.B ein Stück Alufolie, weißer Sticker, Farbe usw auf unteren Seite der Lokomotive.
Du kannst auch die LEDs ausbauen, und seitlich zur Strecke plazieren. Die Fahrzeuge werden das Licht unterbrechen.
Die verwenden IR Licht, also man sieht nichts
 
IMG_3761.JPG
Du kannst auch solche Optokupplers einsetzen, die sind sehr klein und kann man die zwischen den Schwellen installieren, (anstelle von den relativ großen LEDs im Arduino Baustein).
 
Theoretisch würde auch eine IR-Diode gehen, möglichst klein als SMD und ein Fotowiderstand als Empfänger den man mit dem AD Wandler des Arduinos ausliest, oder? Den Schwellwert müsste man dann so einstellen das er bei Beleuchtung und/oder Tageslicht nicht auslöst. Solche SMD Bauteile sollten auch gut ins Gleisbett passen. So einen Emitter gibt es für 0,11€. Fotowiderstand ab 0,40€.
IR-Empfänger, leider etwas größer, für 0,50€

Diese fertigen Reflexsensoren sind ja relativ teuer. 1,50€ aufwärts. Oder ich habe noch nicht das richtige gefunden.

Theoretisch könnte man zwei zusätzliche Eingänge auf das Shield machen. Dort könnte man zwei Werte einlesen. Ob dieser Wert nun von der Lichtschranke, Reedkontakt oder einer GBM kommt ist ja egal, oder? Man müsste nur gegeben falls den Schwellwert zum auslösen ändern. So könnte man das Shield universal einsetzbar gestalten.


Aber irgendwie bin ich abgeneigt das zu machen. Warum nur? Keine Ahnung.
 
Ich habe gerade die IR Bausteine in Ebay 10 Stk für €7,60 gesehen.
Der Baustein hat auch einen Differentialverstärker für die genauere Einstellung.

Eine herrkömmliche Fotodiode und ein IR LED wird nicht zuverlässig funktionieren. Es gibt noch aufwendigere Systeme, wo der IR LED Lichtimpulse sendet, und die Diode wird nur dann reagieren wenn das Licht vom IR LED kommt. (Synchron oder PLL Schaltung.

Du kannst natürlich die LEDs in schwarzen Röhrchen installieren wo das Umgebunglicht nicht stört.
 
ich würde ja einen IS471F mit IR Diode empfehlen. Der Sensor reagiert nur auf die angeschlossene Diode, was Störungen weitgehend ausschließt. Allerdings habe ich gesehen, dass der Preis z.Z. abartig hoch ist.
 
Kleiner Tipp fals es jemand nachbauen will.

Lötet die Pins für den Nano von der anderen Seite eingesteckt an. Es gibt noch sehr festen Halt in den Stiftleisten. Zusätzlich kann man aber die nicht benutzten I/O Pins des Nanos mit JumperKabeln ansteuern oder ein Kabel auflöten. Dadurch kann man zusätzliche Dinge abfragen, wie Weichenstellung etc.


Nachteil: Die Nanos halten nicht mehr in einem Breadbord.
 

Anhänge

  • image.jpg
    image.jpg
    86,2 KB · Aufrufe: 108
  • image.jpg
    image.jpg
    86,5 KB · Aufrufe: 105
  • image.jpg
    image.jpg
    83,7 KB · Aufrufe: 104
  • image.jpg
    image.jpg
    76 KB · Aufrufe: 104
  • image.jpg
    image.jpg
    48,1 KB · Aufrufe: 103
Hallo André,
nutze ich ähnlich, ist eine universelle Sache mit den Steckerleisten.
Ich habe welche, da ist die Stiftlänge auf jeder Seite 9 mm, dadurch
auch beim Auflöten auf eine Leiterplatte guten Kontakt mit den Jumperkabel.
Nutze ich als Verteilerleiste, kann ich auf jede Seite ein Jumperkabel
Aufstecken oder auch einseitig einen Draht anlöten.

Viele Grüße Wolfgang
Leiste.JPG
 
Eine Stiftleiste reicht da als Adapter völlig zu fürs Breadboard. Nur allein aufm Breadboard hält es nicht mehr.
 

Anhänge

  • image.jpg
    image.jpg
    54,4 KB · Aufrufe: 68
Hja, meine Loks sind zu unterschiedlich. Einer reicht nicht einmal die VMin von 5V zum kriechen. Die andere könnte mit 2V kriechen. Eine ist über doppelt so schnell wie eine andere. So richtig bekomme ich es nicht gescheit eingestellt. Schade.

Funktioniert, aber nur bei ähnlich fahrenden Loks und nicht allzu kurzen Blockstrecken.
 
Leider das ist immer die große Frage. Du siehst das die Hersteller sind überhaupt nicht in der Lage die Geschwindigkeiten der Modelllokomotiven in Griff zu bekommen. ( Gerade vorige Woche hat mein Freund eine "überarbeite" Lok bekommen, welche doppelt so schnell ist wie ihre 20 Jahre alte Vorgängerin. (Wir reden nicht über ICEs and eine kleine Dampflokomotive!)

Natürlich wir das Problem größer wenn die Blockstrecken zu kurz sind.
 
Zurück
Oben