Hallo alle zusammen, ich habe in meiner Anlage die Metallschaltgleise für die Rückmeldung und jetzt bekomme ich sehr häufig Fehlermeldungen und da dachte ich mir, dass ich einen Pull-down-Widerstand einbaue, denn ich habe es auch schon bei anderen Schaltgleisen gesehen, dass da kleine braune und runde Widerstände drin sind. Ich weiß leider nur nicht wie groß der Widerstand sein sollte. [attachment=0]Schaltgleis.pdf[/attachment] Kann mir da jemand helfen? Gruß Simon
Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen
das Gleis ist ein Metall- Kontaktgleis, kein Schaltgleis. Die "kleinen runden " Dinger sind Kondensatoren, die zur Funkentstörung dienen. Das gezeigte Gleis war einst für die beleuchteten "flackernden" Andreaskreuze oder Läutwerke gedacht und gemacht.
Im Gegensatz zu den von Dir verglichenen großen Kontaktgleise ist die Kontaktfläche relativ klein. Ist die Fläche oder die gegenüberliegende Stelle verschmutzt, wird kein Kontakt hergestellt.
Beschreibe mal Deine Fehler, die auftreten. Dann ist eher eine gezielte Abhilfe möglich.
Gruß Stefan
Mein Name ist übrigens Stefan , aber ich poste als PH
Da ich ja analog mit Arduino fahre, brauche ich nur eine kurze Rückmeldung, wenn der Zug am Block Ende angekommen ist (In-Melder). Diese nutze ich über 16V Relais und dann die 5V an einen digitalen Pin des Aruinos. Die Enter-Melder mache ich nur Virtuell, dass heißt mit Statusvariablen. Und jetzt bekomme ich die Rückmeldung schon, wenn die Lok erst am Anfang des Blocks ist (und dass hat sicher nichts mit den Status Variablen zu tun) und ich bekomme eine Fehlermeldung, außer bei dem Kontaktgleis mit Funkentstörung, kann mir jemand sagen welche Kondensatoren das sind, weil ich nicht weiß, wie man das messen kann. Gruß Simon
Zitat ich habe in meiner Anlage die Metallschaltgleise für die Rückmeldung und jetzt bekomme ich sehr häufig Fehlermeldungen und da dachte ich mir, dass ich einen Pull-down-Widerstand einbaue, denn ich habe es auch schon bei anderen Schaltgleisen gesehen, dass da kleine braune und runde Widerstände drin sind. Ich weiß leider nur nicht wie groß der Widerstand sein sollte.
Wie schon angemerkt handelt es sich um ein Kontaktgleis, also ein Gleis, bei dem ein Abschnitt der Schiene vom Rest des Gleises - also dem Bett und der anderen Schiene - isoliert ist. Solange Schienen und Räder (beide Seiten miteinander verbunden) sauber sind, entspricht das einem einfachen richtungsunabhängigen Schalter. Du kannst das z.B. prüfen, indem Du eine Batterie und ein passendes Glühbirnchen hintereinandergeschaltet! mit den beiden Schienen des Gleisbildes verbindet. Immer wenn mindestens eine Achse den isolierten Schienenabschnitt mit der anderen Schiene verbindest, wird das Birnchen leuchten.
Du fährst analog. Was ist die Aufgabe des Arduinos, was ist die Aufgabe des Relais? Ist der Arduino Dein Fahrgerät, der Deine analogen Loks mit einer Puls modulierten Spannung versorgt? Oder hat der Arduino eine Aufgabe im Rahmen der Rückmeldung. Wo soll die Rückmeldung landen, wer soll was damit machen? Soll das lediglich eine Anzeige sein oder sollen mit den Relais Abläufe (Strom an, Strom aus) gesteuert werden? Was bedeutet Fehlermeldung? Wer liefert die? Wie sehen die Fehlermeldungen genau aus?
Die verbauten Keramikkondensatoren sind meist in der Grössenordnung von 20nF - 200nF.
MfG
vik
im Übrigen - Märklin am liebsten ohne Pukos, z.B. als Trix
Es ist im Prinzip ganz Einfach. Ich habe 3 Blöcke mit einem Isoliertem Stück, das nur über ein 5V Relais vom Arduino aus mit Strom versorgt wird und mit den Kontaktgleisen bekomme ich die Rückmeldung und die Relais brauche ich, da das Kontaktgleis mit 16 Wechselstrom arbeitet und der Arduino mit 5V Gleichspannung. Das heißt über die Kontaktgleise bekomme ich die Rückmeldung ob, der Zug am Block Ende angekommen ist, dann soll der Arduino prüfen ob der nächste Block frei ist und die Status Variable (des nächsten Blocks) auch LOW ist (Wer Rocrail kennt, dass sind die Viruellen Rückmelder) und dann soll er den Block anschalten, die Status Variable auf LOW setzen und die des nächsten Blocks auf HIGH usw. und die Software funktioniert auch soweit. Fehlermeldung: Ich fahre mit zwei Zügen und 3 Blocks, dass heißt es ist immer nur ein Block frei und dann fährt der vordere Zug in der freien Block aber das Kontaktgleis meldet schon, sobald der Zug den alten Block verlässt und da nun die Statusvariable des neuen Blocks schon auf HIGH gesetzt wurde, aber das Kontaktgleis meldet immer noch und dass heißt es sind alle drei Blöcke belegt und dann habe ich einprogrammiert, dass er dann ERROR meldet Dass passiert nur bei dem Kontaktgleis ohne Kondensatoren und bei dem einen mit läuft alles wie am Schnürchen . Also kann es ja nur daran liegen, denn alles andere (Programmierung) ist gleich. Ich baue mal die Kondensatoren in die Kontaktgleise ein, dann sollte alles laufen! Danke, ich melde mich dann! Gruß SImon
Zitat Es ist im Prinzip ganz Einfach. Ich habe 3 Blöcke mit einem Isoliertem Stück, das nur über ein 5V Relais vom Arduino aus mit Strom versorgt wird und mit den Kontaktgleisen bekomme ich die Rückmeldung und die Relais brauche ich, da das Kontaktgleis mit 16 Wechselstrom arbeitet und der Arduino mit 5V Gleichspannung. Das heißt über die Kontaktgleise bekomme ich die Rückmeldung ob, der Zug am Block Ende angekommen ist, dann soll der Arduino prüfen ob der nächste Block frei ist und die Status Variable (des nächsten Blocks) auch LOW ist (Wer Rocrail kennt, dass sind die Viruellen Rückmelder) und dann soll er den Block anschalten, die Status Variable auf LOW setzen und die des nächsten Blocks auf HIGH usw. und die Software funktioniert auch soweit. Fehlermeldung: Ich fahre mit zwei Zügen und 3 Blocks, dass heißt es ist immer nur ein Block frei und dann fährt der vordere Zug in der freien Block aber das Kontaktgleis meldet schon, sobald der Zug den alten Block verlässt und da nun die Statusvariable des neuen Blocks schon auf HIGH gesetzt wurde, aber das Kontaktgleis meldet immer noch und dass heißt es sind alle drei Blöcke belegt und dann habe ich einprogrammiert, dass er dann ERROR meldet Dass passiert nur bei dem Kontaktgleis ohne Kondensatoren und bei dem einen mit läuft alles wie am Schnürchen . Also kann es ja nur daran liegen, denn alles andere (Programmierung) ist gleich. Ich baue mal die Kondensatoren in die Kontaktgleise ein, dann sollte alles laufen! Danke, ich melde mich dann! Gruß SImon
Wenn du den offenen Relaiskontakt am Eingand eines Arduino-Ports hast, kann dieser das nicht einfach so als offen erkennen. Er hängt in der Luft. Der Prozessor (Arduino) hat intern einen Pullup eingebaut. Dieser muss aber definiert werden mit pinMode() Siehe: https://www.arduino.cc/reference/en/lang...tal-io/pinmode/ Wenn du den Befehl so schreibst pinMode(13, INPUT_PULLUP); definierst du den Portpin13 als Input mit Pull-Up. Dieser Pull-up Widerstand ist bereits im Chip verbaut
Wenn du am Kontaktgleis ein Relais anschliesst, kannst du aber Low und High Pegel direkt mit einem Umschaltkontakt (einmal an Masse und einmal an +5V) realisieren. Was du in der Elektronik nie machen darfst, sind offene Eingänge. Da kriegt jeder moderne Digitalbaustein das Flattern.
OK, vielen Dank für den Tipp, dass mit dem Pull Up werde ich mal versuchen. Einen 1kOhm Pull-down-Widerstände hatte ich schon eingebaut (Also vom EingangsPin zur Masse) Mit den 5V Volt auf der einen und Masse an der anderen Seite meinst du das so:? [attachment=0]Relais Rückmeldung-danach.pdf[/attachment] Bisher hatte ich es so: [attachment=1]Relais Rückmeldung.pdf[/attachment] Ist das so richtig? Gruß Simon
Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen
Hallo Simon, den internen Pull-Up Widerstand eines Eingangs per Software aktivieren. Ein Pull Down Widerstand macht nur Sinn wenn der PullUp deaktiviert ist. Dann ist die Ruhelage des Eingangs GND. Aktiver interner PullUp-Widerstand und externer PullDown-Widerstand bilden einen Spannungsteiler. Je nach Werten verursacht das dann noch mehr Probleme. Da du mit Relaiskontakten arbeitest solltest du in der Software eine Zeitschleife an jedem Eingang vorsehen um das unvermeidliche Kontaktprellen, der Controller erkennt dies als mehrere schnelle Schaltvorgänge,zu unterdrücken. Auch ein 100nF Kondensator vom Eingang nach Gnd (bei aktivem PullUp) kann helfen. In der Software immer dran denken dass ein nicht aktiver Eingang dann High ist. Volker
Zitat Ich baue mal die Kondensatoren in die Kontaktgleise ein, dann sollte alles laufen!
Kondensatoren in Kontaktgleis, wo du mit Wechselspannung arbeitet? Wünscht du rauch und nicht Rückmeldung zu haben?
Wenn du Fehlermeldungen haben, bitte genau erklären welcher. Du hab ein Relais zwischen Gleis und aurduino. Hab der Relais auch die Fehlermeldungen oder ist es nur andere Eingang ihren arduino? Hab du pull-up/down an die Eingänge ihren arduino? Hab du „flicker-filter“ in ihren arduino Software?
Hallo Klaus, ein Kondensator im Wechselspannungskreis funktioniert seit Jahrzehnten völlig problemlos. Deine Aussage ist Unfug. Jedes Märklin analoge Anschlußgleis oder jeder Märklin Motor hatte mindestens einen Kondensator. Etwas anderes wäre es bei Elkos. Die sind meist gepolt (gibt es aber auch bipolar). Davon ist hier aber nicht die Rede. Volker