Go Down

Topic: Modellbahn Lichtschranken (Read 6164 times) previous topic - next topic

ElEspanol

#15
Jun 19, 2016, 12:38 pm Last Edit: Jun 19, 2016, 12:40 pm by ElEspanol
Mit Dioden und entsprechendem Protokoll könnte es schon gehen  ::)

oder einem OR Logig Baustein ?

Scherheinz

Hallo Scherheinz,

ja die habe ich gesehen und fand es scheiße... Ich konnte damit nicht richtig viel anfangen...
Habe mir dann die c't hacks Ausgabe besorgt und damit habe ich mir dann mit Hilfe des Arduino Forums den Uno mit der Märklin verbinden können.
Auch hier wird der S88 Bus vorgeschlagen.

Gruß,
Ludwig
Das ist ja auch nur eine Erklärung und keine Anleitung. Ich habe die c't hacks auch damals gelesen und etwas im Netz danach gestöbert.
Hier könnte ihre Werbung stehen

Ludwig98Mueller

Das geht nicht so einfach. Deine Schnittstelle ist eine Punkt-zu-Punkt Verbindung, du kannst da nicht einfach mehrere Teilnehmer dranhängen.
Okay, d.h. ich muss dann einen Mega als Kopplungsstück z.B. nutzen und mit dem dann die ganzen anderen Geräte bedienen?

Scherheinz

Das kannst du oder mehrere kleinere billige Arduinos oder mit Portexpandern die dir schon vorgeschlagen wurden. Für deine Eisenbahn führen viele Wege nach Rom.  :)
Hier könnte ihre Werbung stehen

Doc_Arduino

Hallo,

mal was anderes. Möchtest du dir wirklich deine Eisenbahnplatte mit oberirdisch sichtbaren Lichtschranken versauen?
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Ludwig98Mueller

Hallo,

wenn ich das richtig sehe, kann ich hierüber den Mega mit 4 weiteren Geräten verbinden oder? Dann muss ich halt hierauf eine entsprechende Software programmieren, sodass die wichtigen Daten für das Display des Raspis zum Raspi kommen, den Rest kann ich entweder direkt auf diesem einen Arduino verarbeiten oder halt auch an den Raspi schicken oder?

Ich hab nochmal nachgedacht, bin auf einen Denkfehler gestoßen, im Prinzip brauche ich nicht pro Weiche 3 Rückmelder, sondern es reichen auch zwei wenn wir von einer normalen 1-2 Wege Weiche ausgehen.

Hallo,

mal was anderes. Möchtest du dir wirklich deine Eisenbahnplatte mit oberirdisch sichtbaren Lichtschranken versauen?

Nein, das haben wir schon in den letzten paar Texten geklärt

Reed Kontakte sind wie Taster, die ziehen keinen Strom, sondern schalten "ein" oder "aus". (Möglicherweise verwechselst Du das mit Reed-Relais?) Mit dem Reed-Kontakt schaltest Du den Arduino-Eingang gegen GND und initialisierst den Eingang durch INPUT_PULLUP mit einem internen PullUp-Widerstand von ca. 50 kOhm, bei Störungen auch mit einem externen kleineren.

Bei der Menge Eingänge würde ich über ein Bussystem oder verteilte "Intelligenz" nachdenken, machst Du wömöglich längst  :)
Ich werde es mit Reedkontakten umsetzen, die kann ich ja in die Schiene mittig einsetzen und an die Loks unten dran Magnete anbringen, sodass wenn diese drüberfahren der Kontakt kurzzeitig geschlossen wird.
Da werde ich dann z.B. diese hier verwenden: Der sollte es ja eigentlich tun, den könnte ich ja sogar dann wie eine Schwelle lackieren. SOllte ja auf die magnetischen Eigenschaften keine Auswirkung haben oder?

Gruß,
Ludwig

Doc_Arduino

#21
Jun 19, 2016, 04:38 pm Last Edit: Jun 19, 2016, 04:44 pm by Doc_Arduino
Hallo,

du sagtest, du hast die Lichtschranken schon da. Deswegen meine bedenken.
Reedkontakte würde ich nun wiederum ebenfalls nicht verwenden. Die prellen. Mist.
Da ich auch an einer Modellbahnanlage arbeite, nehme ich Hallsensoren und Magneten an der Lokunterseite.
Ganz saubere Sache. Südpol nach unten zeigend und in die Schwellenlücken TLE4905 verbauen.
Wenn du davon 2 nebeneinander baust und den Magneten verlängerst, kannste auch eine Richtungsauswertung einprogrammieren. Stichwort Gray-Encoder. Auch eine ganz saubere Sache.

Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Ludwig98Mueller

Hallo Doc,

du meinst diese hier oder: https://www.reichelt.de/TLE-4905L/3/index.html?&ACTION=3&LA=446&ARTICLE=25717&artnr=TLE+4905L&SEARCH=TLE4905

Und dann von denen mit kleinem Abstand hintereinander zwei einbauen?
Dann bekomme ich ja sogar eine Geschwindigkeit wenn ich das richtig sehe, weil ich die Zeit messen kann und auch noch die Strecke kenne oder?

Aber wenn ich die Lokdaten sowieso im Raspi speichere wo mit welcher Richtung diese sich bewegt/steht ist eine zweite Hallsonde doch eigentlich überflüssig oder?

oder kannst du bitte mal ein Bild posten wie du es umgesetzt hast?

Gruß,
Ludwig

Doc_Arduino

#23
Jun 19, 2016, 08:27 pm Last Edit: Jun 20, 2016, 06:58 am by Doc_Arduino
Hallo,

mit den Sensordaten kannste alles machen was du dir vorstellen kannst.
Ich habe derzeit eine 2m Teststrecke mit 3 Sensorpaaren.
Geschwindigkeiten messe ich schon. Nächste Ausbaustufe ist automatische Geschwindigkeitsregelung.
Wenn auf dem Abschnitt nur 60km/h gefahren werden soll, bin ich unabhängig davon zu wissen welche Lok auf dem Gleis fährt. Ich fahre mit einem mir bekannten Regelungswert an, messe für den Sektor die echte Geschwindigkeit, rechne den neuen Wert zur Geschwindigkeitsregelung aus und stelle den dann ein.
Die km/h messe ich natürlich über einen längeren Abstand, nicht über die 11mm vom Sensorpaar.
Die Richtungsauswertung nutze ich hier damit ich weis ob beschleunigt oder gebremst werden soll.
Falls du ein Sensorpaar verbaust mit dem Zweck zur Richtungsauswertung, dann müssen die Sensoren/Magneten so
angebracht sein, dass das Magnetfeld die gesamte Länge / Bereich der Sensoren abdeckt.
Wenn du die Richtungsauswertung nicht benötigst, dann kannste das natürlich lassen mit Paarweise.
Die Magneten werden am Ende mit Patex Repair oder Multi angeklebt.

anfahren_bremsen

Die Sensoren kann man natürlich und sauberer verbauen, ist klar, Versuchsaufbau eben.
Wenn die Kabel nach unten weg gehen sieht man nichts mehr. In dein HO Schienen haste mehr Platz.



Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Ludwig98Mueller

Hallo Doc,

das sieht echt gut aus!
ABer ich glaube bei mir kommt eben das Problem dazu, dass ich zwischen den neuen H0 C-Gleisen einfach nicht sehr viel Platz habe. Ich würde daher doch eher dazu tendieren, Reedkontakte einzubauen, da ich diese doch um einiges besser verstecken kann, und eben das Mittelleiterpunktmaß nicht zum Problem wird.

Oder so wie hier montieren:
Aber mit dem Mittelleiter könnte das zum Problem werden der unten drunter ist...

Oder haben die mittig einfach drei winzige Löcher gebohrt und dann die drei Metallstäbe durchgeschoben?

Und der TLE4905 den kann ich mit einem Inputpulldown an einen digitalen I/O hängen oder? Weil überall steht Inputpullup, ich müsste doch den Output wieder abbauen oder ist der Outputwert bei keinem Magnetfeld gleich VIN?

Gruß,
Ludwig

agmue

Und der TLE4905 den kann ich mit einem Inputpulldown an einen digitalen I/O hängen oder? Weil überall steht Inputpullup, ich müsste doch den Output wieder abbauen oder ist der Outputwert bei keinem Magnetfeld gleich VIN?
Hast Du schon mal ins Datenblatt geschaut? Der Ausgang ist open collector und benötigt einen PullUp-Widerstand, entweder mittels INPUT_PULLUP den im Arduino eingebauten oder einen externen. Ein vorhandenes Magnetfeld zieht den Ausgang also auf LOW. Das ist nicht ungewöhnlich und für das Programm egal. Ich finde den Hallsensor klasse :)
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

Doc_Arduino

Hallo,

welche 3 Metallstäbe? Das Ding hat die Form eines kleinen Transistors.  
Auf Seite 15 stehen die Maße. Datenblatt
Der Ausgang des Sensors benötigt einen Pullup. Das hat nichts mit dem Input vom µC zu tun. Den Input_Pullup vom µC habe ich extra noch aktiviert. Wegen Kabellänge. Wenn du wie ich einen LED mit Vorwiderstand als Sensor Pullup verbaust, haste gleichzeitig eine optische Detektanzeige.

Wenn du für einen Readkontakt Platz hast, dann sollte doch für den Sensor auch Platz sein. Ich kenne aber deinen Schienensystem nicht wirklich.

Wenn du doch Reedkontakte nehmen möchtest oder mußt, dann teste erstmal welches Magnetfeld die benötigten. Auf jeden Fall mehr wie ich hier mit den kleinen Minimagneten. Ich kenne die so, dass man mit Lackdraht einen Spule um die Glaskörper wickelt damit sie schalten. Oder ein deutlich größerere Magnet ran muß. Probiere es und die bessere Lösung für dich nimmste. Muß ja nicht für jeden alles passen. War nur eine Idee.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

agmue

welche 3 Metallstäbe? Das Ding hat die Form eines kleinen Transistors. 
Möglicherweise meint er die Anschlußdrähte damit  ;)
Wenn du wie ich einen LED mit Vorwiderstand als Sensor Pullup verbaust, haste gleichzeitig eine optische Detektanzeige.
Der Sensor kann bis 100 mA, das paßt. Die Idee gebe ich gleich mal an einen Freund weiter, gefällt mir.  :D
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

Ludwig98Mueller

Hallo Doc,

sry, mir ist das Wort nicht eingefallen für die Kontaktpins der Hallsonde.

Ich bin nur auf ein anderes Datenblatt leider gekommen, bei dem keine Größe angegeben war.
Aber es sollte genug Platz zwischen meinen Schwellen sein.

Gruß,
Ludwig

Doc_Arduino

Hallo,

@agmue: schön wenns gefällt.  :)

@ ludwig: macht ja nichts. Ich war nur irritiert. Hätte auch sein können du meinst was von den Schienen oder Schwellen auf dem Foto. Der Kopf paßt genau zwischen 2 meiner TT-Schwellen. Später werde ich die Beine 90° abwinkeln und senkrecht durch die Platte stecken. Sodass die Beine nur ein kurzes Stück zwischen Sensorkopf und senkrecht über einer Schwelle liegen. Das ist ja extrem flach. Zugeschottert sieht das niemand mehr. Oder man dremelt/fräst die Schwelle vorher noch ein wenig flacher. Modelleisenbahn beinhaltet auch viel basteln.  :)
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Go Up