PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Märklin Weichen schalten



pmaler
29.10.2008, 13:34
Hallöchen in die Runde

Mein Sohnemann begeisterte mich gestern Abend mit der Mitteilung "Ich habe einen Großauftrag für Dich"

Er meint "Papi hat schon mal gelötet, also schafft er das auch" :-s

Es geht darum, dass in einer Digitalen Märklin-Eisenbahn Umgebung ein Quasi- Extra Schaltmodul "erfunden" werden soll, welches mit einfachen Tasten Weichen schaltet und Gleisabschnitte mit Strom versorgt, bzw. wieder unterbricht.

Mein Hinweis, dass es da das Modul XY gäbe hat er mir im Keim erstickt, weils nicht sowas teures sein darf und es ja auch für einen Bekannten wäre, der zwar Digital, aber geistig noch Analog... Bla Bla Bla...

Also hab ich meine Gehirnwindungen (und meine Gutmütigkeit) zusammen gekratzt und mal überlegt:

Alles was man zum Betrieb eines Mega32 braucht ist im Haus.
Quarz, Kondensatoren, Widerstände, Taster... Ein kleines Gehäuse wird auch wo rumliegen.

Also warum nicht ein kleines Proggi schreiben, dass einen AVR Mega32 steuert, der wiederum mit 74LS595 genügend Ports zum schalten zur Verfügung stellt.

Auch der 78S05 ist da und mit einem kleinen Brückengleichrichter, einem dicken Elko vorne einem kleinen hinten und zur Vermeidung von HF 2 Kerkos ist die geregelte Stromversorgung über den Fahrtstrom auch erschlagen.

Die LED´s zur Statusanzeige ansteuern und mit REED-Kontakten die Schalter abfragen ist auch schon gekocht und halb verdaut.

Aber...

Eine Märklin Weiche mit einem kurzen Impuls von mit Dioden gleichgerichtetem Fahrtstrom schalten...

Da brauchts etwas dazwischen.

1. Frage: Kann ich das mit einem Transistor erledigen, der mit Widerstand am Pin des Prozessors hängt und sagen wir mal 50ms lang durch schaltet? Oder sollte ich lieber einen Optokoppler verwenden ? Und wenn ja... Welchen den ?

2. Frage: Um Blockabschnitte Stromlos zu machen bzw. wieder mit Saft zu versorgen... Sollte ich da Relais verwenden ? Wie nennt man die Dinger Bipolar oder Schalt(REED)relais oder so. Also die in der eingestellten Stellung verbleiben? Oder geht das eventuell auch etwas billiger. Solche Relais sollen pro Stück um die 6 Euros kosten...


Ich nehme mich des Themas nur deswegen an, weil mein Sohn mich darum gebeten hat, ein Kauf eines externen Teils nicht in Frage kommt und es für mich wieder was Neues darstellt und ich dadurch wieder viel lernen kann. Ansonsten ist meine Arbeitszeit das X-fache wert, was ein Kaufteil kosten würde :-)

Kann mir jemand wegen der Fragen unter die Ärmel greifen ?

Besten dank

jeffrey
29.10.2008, 14:34
Hallo,
also transitor als treiber für die weichen sollte gehen. oder nen fet verwenden, wenn du lust hast. die einfachere variante wäre dann einfach wie es früher bei der analogen ja üblich war direkt vom lichtstrom über den taster auf die weiche gehen. märklin analog fährt übrigends mit wechselstrom.
aber das problem ist soweit ich weiß, dass sich digitale weichen nicht mit einem entsprechenden impuls schlaten lassen.
mfg jeffrey

pmaler
29.10.2008, 14:44
die einfachere variante wäre dann einfach wie es früher bei der analogen ja üblich war direkt vom lichtstrom über den taster auf die weiche gehen


Ja schon. Das alte System hab ich sogar auch noch im Keller. Sogar die 25Jahre alten Taster sind noch da...

Aber es sollen ja mehreres (quasi)gleichzeitige Aktionen ausgeführt werden.

LED an, andere LED aus, Weiche schalten, Block vom Strom nehmen usw. usw..


märklin analog fährt übrigends mit wechselstrom.
aber das problem ist soweit ich weiß, dass sich digitale weichen nicht mit einem entsprechenden impuls schlaten lassen.


Die Weichen sind mit einem Dekoder angeschlossen, der das erledigt. Die Weichen haben ja spulen und brauchen DC, wobei ich vermute, dass es nur eine Phase des Wechselstroms sein wird.

Bei reinem DC bleibt schon mal ein Kontakt "kleben" durch die doch relativ massiven Ströme die da fliesen können.

Aber zurück zum Transistor.
Ich nehme mal an, dass ein 30 - 100ms Impuls genügen sollte um eine Spule zum Anziehen zu bringen. Also ist da für 100ms Saft am Transistor.

24Volt AC werden maximal verwendet. Die Spulen erzeugen aber ein Induktionsfeld und ich muss mit einer etwas größerem Diode dafür sorgen, dass mir der Transistor nicht verblitzt beim wieder "loslassen"

Das ganze hab ich schon mal bei einem Relais durch gespielt. Das Relais wurde aber mit 5Volt geschalten und nicht mit 16Volt DC

Und darum frage ich eben, ob das mit einem Transistor (auf Dauer) geht.

jeffrey
29.10.2008, 15:25
hallo,
also hab ich das jetzt richtig verstanden, du willst den dekoder einfach überbrücken, und direkt auf die kontakte der weichen spule gehen? wenn ja, dann funktioniert des auf problemlos mit einem transisor. also zumindest die alten analogen märklin weichen kann man problemlos mit dc betreiebn, allerdings läuft die ganze anlage mit dc.
mfg jeffrey

pmaler
29.10.2008, 15:56
hallo,
also hab ich das jetzt richtig verstanden, du willst den dekoder einfach überbrücken, und direkt auf die kontakte der weichen spule gehen?


Exakt



wenn ja, dann funktioniert des auf problemlos mit einem transisor. also zumindest die alten analogen märklin weichen kann man problemlos mit dc betreiebn, allerdings läuft die ganze anlage mit dc.


OK. Ein Problem weniger.

Und einen Blockabschnitt mit Strom versorgen ?
Am besten mit einem Relais?

Besserwessi
29.10.2008, 16:07
Den Stromabschnitt sollte man per Relais schalten. Die alten Anlagen liefen mit AC, die neuen werden zum Eigentlichen Fahrsstrom noch irgendwelche höherfrequenten Steuersignale haben. Das läßt sich einfach besser per Relais schalten. Reed Relais werden wegen der Belastbarkeit nicht reichen. Lieber etwas stärkere Kontakte wählen, als zu schwach. Gerade bei Gleichstrom werden die Kontakte relativ stark belastet. Ein Varistor oder so zur Funkenunterdrückung wäre auch nicht verkehrt.

pmaler
29.10.2008, 16:40
Vielen Dank... Hab irgendwo (gestern Nacht kurz vor dem zusammenbrechen) noch gelesen, dass es bei Conrad so relais geben soll. Um 6 Euro, aber für Dauerbetrieb geeignet und so...
Und besser (und billiger) als das, was Märklin liefert.

Ich hoffe ich finde das noch irgendwo,

Danke auf alle Fälle.

Besserwessi
29.10.2008, 18:04
6 EUR kleingt relativ teuer für eine Relais für diese anwendung, es sei denn für ein bistabiles. Das wäre zwar nicht schlecht, muß aber nicht sein, schließlich betreibt man die Eisenbahn ja nicht so oft/lange, dass man super energiesparsam bauen muß.

pmaler
29.10.2008, 18:09
bistabiles


Das war das Zauberwort.
Das meinte ich.

Es muss leider so eins sein, weil die Blockstrecke erst bei erreichen eines Reed-Kontaktes stromlos werden soll und auch bleiben soll, bis der Controller das Kommando gibt, wieder los zu fahren.

Die ganze Geschichte ist mittlerweilen relativ einfach geworden.
Alles standard-zeugs, wie es scheint

Besserwessi
29.10.2008, 18:38
Wenn man einen Controller dran hat, braucht man nicht unbedingt ein bistabiles Relais. Der controller kann die Information (1 Bit) Speichern und ein Normales Relais für die Funktion nutzen. Es braucht halt nur etwas mehr Strom, und ohne Strom für den Controller ist es halt immer aus.

pmaler
29.10.2008, 18:56
Ich habe mir das OK vom Empfänger des Zeugs geholt und beim großen C die 6 Bistabilen gerade bestellt.


Welchen Transistor nimmt man den her um eine Spule die mit 16V DC betrieben wird zu schalten?
Langt da ein BC537
Der hat sowas an die 60Volt und einen Collector Current von 1A
Müsste für Schaltvorgänge von ein paar ms wohl genügen, oder ?

Und eine Diode in anderer Richtung damit die Spole keinen Schei.. macht. Denk ich mir mal so lasch...

oZe
29.10.2008, 22:31
Normalerweise müsste ein BC547 schon reichen. Das kommt aber auf den Widerstand des Relais an. Mit deinem Transistortyp bist du natürlich auf der sicheren Seite. Warum du jetzt unbedingt Bistabile Relais nutzen willst versteh ich allerdings nicht. Ein normales Relais hätte es ja auch getan. Du kannst es ja auch auf beiden Zuständen halten indem du einfach den Ausgang vom Controller nicht wieder auf 0 setzt sondern auf 1 lässt solange das Relais angezogen bleiben soll.

Den Transistor kannst du genau wie du es gesagt hast einfach mit einer Freilaufdiode schützen. Dazu kannst du eine 1N4148 nehmen die du in Gegenrichtung über die Spule setzt. Eventuell kannst du auch noch eine Diode über E und C des Transistors setzen (auch wieder in Gegenrichtung versteht sich) dann bist du komplett auf der sicheren Seite.

So ich hoffe ich konnte dir ein bischen helfen oder wenigstens deine vermutungen bestätigen.

pmaler
30.10.2008, 07:08
Ein normales Relais hätte es ja auch getan. Du kannst es ja auch auf beiden Zuständen halten indem du einfach den Ausgang vom Controller nicht wieder auf 0 setzt sondern auf 1 lässt solange das Relais angezogen bleiben soll.


Es soll der Zustand erhalten bleiben, auch wenn der Controller wegfällt, daher die bistabilen.



So ich hoffe ich konnte dir ein bischen helfen oder wenigstens deine vermutungen bestätigen.


Vielen Dank. Hier wird einem echt super geholfen, auch wenn es im Moment mal nichts direkt mit Robotern zu tun hat.

wkrug
30.10.2008, 08:57
Weil Du ja anscheinend mehrere Relais verbausn willst könntest Du Dir auch den Einsatz eines Darlingtonarrays ULN2003 - ULN2803 überlegen.

Da wären dann 8 Transistoren mit 500mA Strombelastbarkeit und den dazugehörigen Freilaufdioden schon drin.

pmaler
30.10.2008, 09:12
Ich hab schon daran gedacht. Leider nachdem ich die bestellung schon abgeschickt hatte.

Hier war mal ein Thread in dem das besprochen wurde.

Jetzt hab ich das Problem, dass das Teil 30 cent kostet und für 30 cent kein Versand lohnt.

Ich muss mir also was suchen, was ich brauchen kann um das Teil mir dazu legen zu lassen :-)

Dabei hab ich im Moment alles zu Hause, was ich zum Bau der Spielerei benötige...

Der nächste Conrad ist in Salzburg und da brauch ich auch mind. 30 Minuten um da in den Süden von Salzburg zu kommen...

Ich wünsch mir manchmal ein kleines Stargate oder eine Beam-Kabine :-)

Besserwessi
30.10.2008, 18:47
Die Ansteuerung bistabiler relais ist auch nicht ganz so einfach wie bei den normalen. Es gibt da Ausführungen mit 1 oder 2 Spule. Bei der Ausführung mit 1 Spule muß man die Stromrichtung umpolen. Bei 2 Spulen muß man auch etwas mit den Freilaufdioden aufpassen, denn die Spulen sind magnetisch gekoppelt. Ein normale Freilaufdiode kann dann den Puls auf der anderen Spule ziehmlich bremsen.

pmaler
30.10.2008, 19:08
Danke für den Hinweis.

Ich hätte da noch eine Frage bezüglich eines 74xx595 Schieberegisters.
(2 um genau zu sein)

Hab da etwas weiter rein gelesen und gesehen, dass man bei der Verwendung von SPI mit dem ISP-Programmieren kollidieren kann.
Also muss man Pullups verwenden auf MOSI, SCK und dem Port SS (PB4 beim Mega32)

Einerseits würde ich gerne andere Ports verwenden, was mir die Pullups erspart. Andererseits... würde da 1K als Widerstand genügen oder solls mehr sein. Hier im Wiki habe ich von "einigen K" beim Portexpander_am_AVR Beitrag gelesen.

Es würde mir aber besser passen, wenn ich andere Ports verwenden könnte... Eigentlich sollte es doch egal sein, welche ich da verwende, oder liege ich da falsch ?

Danke schon mal

wkrug
30.10.2008, 20:09
Ich glaube ich verstehe jetzt die Frage nicht ganz.
Du wirst vermutlich vom Schieberegister nur die Eingänge benutzen ?!
Die sind aber üblicherweise hochomig und beeinflussen die ISP normalerweise nicht.
Pull Up Widerstände über 4,7k Ohm sollten die ISP auch nicht stören.

Ein Problem könnte sein, das die Programmierimpulse für den Controller die SPI und damit das Schieberegister beeinflussen und willkürlich irgendwelche Pegel am Ausgang des Schieberegisters setzen.

Aber wie gesagt, so ganz habe ich die Frage nicht verstanden.

pmaler
30.10.2008, 20:20
Also...
Es geht um den Beitrag hier:
https://www.roboternetz.de/wissen/index.php/Portexpander_am_AVR

Da ist von 2 Varianten die Rede, mit denen man einen oder mehrere 74xx595 als Portexpander verwenden kann.

Einerseits mit SPI, wobei dann von Pullups die rede ist, welche "mehrere K" haben sollen.

Andererseits ohne Hwardware-SPI was dann einen Port des AVR mehr benötigt, soweit ich mit meinem begrenztem Wissen und Verständnis da rauslese.

Bei ersterer Variante ... Da liest es sich wie ein Kochrezept "eine Prise Salz" wobei eine Prise nicht klar definiert ist.

Und wenn man Softwaremässig an die Sache rangeht... Muss ich da auch was beachten oder kann ich einfach sagen wir mal PD0 bis PD3 verwenden und direkt damit an SER, SCK und RCK des 74xx585 ran gehen?

Der erste Schritt im Programm wäre sowieso ein senden der 8 Bits und setzen des richtigen Pins damit die Ausgänge des 595 auf einen definierten Zustand springen.

pmaler
30.10.2008, 21:00
Ich habe unter www.arduino.cc das gefunden, was ich suchte.
Erklärung mit Bildern / Bauplan, so dass auch ein alter Kerl, wie ich, es verstehe :-)

pongi
30.10.2008, 22:40
Wenn Du bedenken wegen dem ISP hast, kannst Du Jumper zwischen uC und Schieberegister verwenden, und beim programmieren die Sachen trennen.

thewulf00
31.10.2008, 12:20
Wenn Du bedenken wegen dem ISP hast, kannst Du Jumper zwischen uC und Schieberegister verwenden, und beim programmieren die Sachen trennen.
Dazu habe ich eine generelle Anschlussfrage:
Welche Leitung wird dann durch den Jumper getrennt?

pmaler
31.10.2008, 12:25
Das weiß sogar ich.

MOSI und SCK

pongi
31.10.2008, 13:18
Die Leitungen zum Schieberegister, die auch vom ISP belegt sind.