Kurzschlussicherung Bahnstrom Modellbahn

Hallo Gemeinde,

ich habe folgendes Projekt Umgesetzt.
DCC BoosterBoard
Soweit so gut es funktioniert auch soweit super.
Einen kleinen Haken hat die Sache jedoch.

Es gibt keine Kurzschlusserkennung, bedeutet wenn ein Zug entgleist oder eine Weiche falsch schaltet läuft der Strom einfach weiter.

Meine Idee war jetzt mit Hilfe eines Strommessers und einem Arduino nano.
Den Ausgangsstrom des Boosters zu messen und bei schnellem Anstieg via Relais abzuschalten.
Und eine Optische Meldung über Led auszugeben.

Quasi wie eine Sicherung.

Um das ganze nach Beseitigung der Störung wieder ans Laufen zu bringen, möchte ich mit einem Taster den Strom wieder einschalten können.

Hat schon mal einer so etwas umgestezt?
Oder eine bessere Lösung? andere Idee?

Gruß
Heini7

Ein Sicherungsautomat.

Ein schneller Anstieg bedeutet nicht unbedingt Kurzschluß. Der hohe Strom sollte schon eine gewisse Zeit fließen, bevor die Sicherung anspricht.

Man kann auch desöfteren testen, ob der Kurzschluß noch vorliegt und ggf. automatisch wieder einschalten. Dafür ist aber ein MOSFET besser geeignet als ein Relais.

Dein Board hat doch noch 2 ungenutzte Pins, wenn ich das richtig erkannt habe.
Ein zusätzlicher Nano scheint mir unnötig.

Das sehe ich anders!
https://github.com/lucadentella/BoosterBoard/blob/main/firmware/BoosterBoard-10.ino#L123C16-L123C16
Schmeckt dir das nicht?
Eine Erweiterung scheint mir nicht ganz so schwierig zu sein.

Hallo Combie,
wie meinst Du das mit dem schmecken?
Bin neu beim Programmieren....

Ich hab es begriffen :face_with_peeking_eye:
Da steht ja schon was im Code zum Thema short circuit, da geh ich später gleich mal volles Risiko und schließe das Ding mal kurz, da sehe ich direkt das Ergebnis....
Danke für den Wink mit dem Zaun...

Hallo,

die Modellbahner wieder. :wink:

Ich finde ein Kurzschlussschutz sollte unabhängig irgendwelcher Software reagieren. Für den Fall habe ich eine eFuse drin. Sanfte Einschalt-Slewrate mittels C9 einstellbar. Falls dicke Elkos dahinter sitzen. Und eben der Auslösestrom mittels R35 einstellbar. Bei mir wie im Schaltplan. Bin TT Bahner. Könnte ich sogar noch etwas runtersetzen. Die eFuse hat sogar schon gewirkt. Lok war auf Weiche entgleist was zum Kurschluss führte und umgehend ausgelöst hat. Erst nach Taster S1 drücken wieder scharf. D11 ist die Kurzschlussanzeige.

Das klingt immer so böse provozierend und unpassend hart. Meinste nicht auch?

Ich bin für mein Worte verantwortlich!
Du und deine Vorgeschichte, für deine Empfindungen.

Oder willst du mal wieder Streit?
Auch kein Problem....
(würde allerdings lieber auf der fachlichen Ebene bleiben)

ps:
hörenswert: [OT] Was hört ihr so für Musik? - #78 by combie

Der Software Kurzschluss spricht sofort an. Wobei diese efuse auch ne gute Idee ist für alle Fälle.
Die würde ich mir auch nachbauen. Fahre auch TT Spur.

Danke für eure Tips
Gruß Heini7

Hallo Gemeinde,
ich habe noch eine weitere frage zum Kurzschlussschutz.
Dieser schlägt so schnell an und schaltet ab.
Das meine Kehrschleifenmodule keine Chance haben die Umpolung vorzunehmen.
(die Module benötigen ca.150ms zur Umschaltung)
Kann ich die Zeit bis zur Abschaltung im Code Einstellen?
dachte an ein (delay von 300ms) wenn der Kurzschluss draüber hinaus bestehen bleibt.
Dann erst die Komplette Abschaltung des Stromes.
So ist es an meiner Zweitzentrale auch gelöst DR5000 von Digikeijs

Gruß
Sebastian Kuhnert

Welcher Software Kurzschluss ? @Doc_Arduino hat dir einen eFuse Baustein gezeigt und hält nicht viel von Software in solchen Fällen.

In Software sind beliebige Verzögerungen sicher einfach zu realisieren.

Der Trick dabei ist aber das der Booster sofort abschaltet schneller als die Sicherung!
Der Kurzschluss entsteht am Gleis wenn die Lok in die Kehrschleife rollt und das Modul die Spannung umpolt.
Der Minimoment reicht um den Laden lahm zu legen

Hallo,

nur für das Verständnis.
Du redest von deinem Kehrschleifenmodul? Hat mit der gezeigten eFuse Schaltung nichts zu tun, weil dein Modul einen eigenen Kurzschlussschutz mitbringt?

Für mein Verständnis sollte eine Kehrschleifensteuerung einen Kurzschluss verhindern. Dafür hat man es schließlich. :wink:

Die gesamte Zuglänge muss in die Kehrschleife passen.
Die Kehrschleifengleisabschnitt ist direkt nach der Einfahrt und direkt vor der Ausfahrt vom Gleisabschnitt davor getrennt.
Gleisabschnitt davor und Kehrschleifengleis sind gleich gepolt,
Zug fährt in die Kehrschleife,
wenn er sicher drin ist wird das durch Sensor(en) erkannt,
Gleisabschnitt davor wird umgepolt,
Zug fährt ohne Pause weiter und raus,

Ich kann in dem Ablauf keine Kurzschlussgefahr erkennen. Wenn der Zug in der Kehrschleife ist, hat die Lok keinen Kontakt zum Gleisabschnitt davor. Dieser kann gefahrlos umgepolt werden, wenn sich die Lok allein auf den Gleisabschnitt der Kehrschleife befindet.

Wenn dein Kehrschleifenmodul irgendwas an dem ersten Trennstück in Einfahrtrichtung detektiert, dass da eine Achse drüberrollt und ein Signal auslöst zum umschalten, dann muss eine Zeitverzögerung zwischen Erkennung und Umschaltung rein. Wobei ich das nicht optimal finde, lieber extra Sensoren verbauen. Sollte aber auch mit Verzögerung funktionieren.

Womit wird die Umpolung vom Modul erkannt? Also woher kommt das Signal was irgendwann zur Umpolung führt? Wie ist das technisch gelöst?

Hallo Doc_Arduino,

das hast Du super zusammengefasst genauso laufen diese Kehrschleifenmodule bei mir auch.
Nur das diese scheinbar in dem Moment des Umschaltens einen Impulserzeugen den der Booster als Kurzschluss interprätiert.

Dieses Verhalten kann Mann durch einfaches drücken der Umschalttaste reproduzieren.

Die Module sind voll elektronisch Digikeijs DR5013 und wie auf dem Bild Angeschlossen.

Der Ablauf der Umschaltung ist ebenfalls beschrieben.

Das ist der Abschnitt aus dem Sketch vom Booster der die Kurzschlusserkennung auslöst.

void checkCurrent() {

  int sample = analogRead(BOOSTER_CURRENT_PIN);
  if(sample > 1000) {
    currentWorkingMode = W_ALERT_SHORT;
    boosterOff();
    Serial.println("Booster OFF due to a short circuit"); 
    return;
  }
  currentSampleSum += sample;
  currentSampleCount++;

Eine Antwort vom Erbauer des ganzen habe ich auch erhalten.

Anyway I'm aware that some loop modules do require some ms to activate.
You can alter the code that detects short circuits, starting from line:

BoosterBoard/firmware/BoosterBoard-10.ino

Line 124 in (Improved documentation about h-bridge connections · lucadentella/BoosterBoard@06c8bd1 · GitHub)

if(sample > 1000) {

at the moment I get only one sample and if it's greater than 1000, activate the short circuit protection. You can add here a delay and check again: only if after 100-200ms the read value is still high, trigger the protection.

Leider reicht mein Programmier Wissen nicht so weit....
was ich hier wie Sinnvoll eintragen soll?!

Habe es mit einem Delay (300); in der Zeile 125 probiert erfolglos...

Deshalb habe ich mich an euch gewendet.

Gruß
Sebastian

Hallo,

ich habe mir die Funktionsbeschreibung mehrfach durchgelesen. Entweder wurde das falsch übersetzt oder das arbeitet laut meiner Meinung falsch. Wie beschrieben im Uhrzeigersinn betrachtet. Bei Einfahrt wird die blaue Kehrschleife entsprechend dem Einfahrtsgleis gepolt. Das wird gemacht noch bevor die Lok das blaue Kehrschleifengleis erreicht. Soweit okay.
Das Problem liegt laut meiner Meinung nach bei der Ausfahrt.
Warum wird das blaue Kehrschleifengleis erneut umgepolt?
In dem Moment befindet sich die Lok doch noch auf dem blauen Kehrschleifengleis.
Zumindestens Hälfte blau Hälfte grün.
Wenn S2 oder S3 erreicht wird ist der komplette Zug auf dem blauen Kehrschleifengleis.
Es müßte dann nur das Einfahrt/Ausfahrtsgleis umgepolt werden.
Das blaue Kehrschleifengleis muss seine Polung behalten, sonst fährt die Lok ggf. rückwärts. Das ist irgendwie komisch. Zumindestens kommt es hier zum Kurzschluss beim überfahren der Trenner.

Vielleicht solltest du in einem Modelleisenbahnforum fragen ob es mit dem DR5013 irgendwelche Problem gibt. Wirst ja sicherlich nicht der Einzigste sein der sowas hat.

Man kann die Kurzschlussauslösung sicherlich verzögern. Nur willst du das wirklich? Wenn es mit der Schaltung zum Kurzschluss kommt ist eigentlich die Schaltung Mist. Es muss nie zu einem Kurzschluss kommen. Was machst du denn wenn bspw. 500ms ein Kurzschluss ansteht. Erfreut das dein Netzteil, restliche Schaltung?
Wenn du das ignorieren möchtest musst du damit leben.

Ein delay an der Stelle bewirkt nur eine verzögerte Auslösung.

if(sample > 1000) {
  delay(300);

Die Auslösung selbst wird damit nicht mehr verhindert, die ist in dem Moment schon im Gange und wird nur verzögert ausgelöst, aber nicht mehr verhindert.

Du müßtest dir den Zeitpunkt (millis) merken wann der Messwert zum ersten mal größer 1000 erreicht hat. Dann wird geschaut ob er 300ms lang größer 1000 bleibt. Wenn er 300ms lang über 1000 lag wird der Kurzschluss ausgelöst. Werden innerhalb der 300ms die 1000 unterschritten, wird der gemerkte Zeitpunkt "zurückgesetzt" und nichts ausgelöst. Der Vergleich bleibt im Besten Fall "negativ".

IDE Bsp. BlinkWithoutDelay anschauen und verstehen.

Theseus erklärt millis()

GuntherB - BlinkwithoutDelay - Die Nachtwächtererklärung

Nur wie gesagt, ich würde zu keiner Zeit einen "gewollten" Kurzschluss dulden. Auch wenn der noch so kurz sein mag. Weil das laut normalen Ablauf nicht vorkommt bzw. nicht vorkommen kann. Ein Kurzschluss sollte ein außergewöhnlicher Fehlerfall bleiben der im normalen Betrieb nicht vorkommt.

Hallo Doc_Arduino,

ich denke Du hast mit deiner Äußerung schon recht.
Das dies nicht der Weissheit letzter Schluss sein sollte.

Ich habe in einem Modellbahnforum einen gefunden der das Gleiche Problem hat wie ich.
Beitrag DCC++ Problem

Die von Ihm ermittelte Ursache:
Nicht ein Kurzschluss ist die Ursache für das Abschalten der Zentrale sondern ein Stromimpuls von knapp 6A beim Umpolen aus dem Modul (TRACK INPUT) in Richtung Zentrale/Booster. Das verursacht das Abschalten der Zentrale da der Booster nur max. 4A verträgt.

Dies könnte ich ja mit Hilfe der Lasteinstellung des Boosters testen der kann maximal 10A leisten.

Die Lösung schaue ich mit trotzdem mit an:

Du müßtest dir den Zeitpunkt (millis) merken wann der Messwert zum ersten mal größer 1000 erreicht hat. Dann wird geschaut ob er 300ms lang größer 1000 bleibt. Wenn er 300ms lang über 1000 lag wird der Kurzschluss ausgelöst. Werden innerhalb der 300ms die 1000 unterschritten, wird der gemerkte Zeitpunkt "zurückgesetzt" und nichts ausgelöst. Der Vergleich bleibt im Besten Fall "negativ".

IDE Bsp. BlinkWithoutDelay anschauen und verstehen.

Theseus erklärt millis()

GuntherB - BlinkwithoutDelay - Die Nachtwächtererklärung

Gruß Sebastian

Hallo,

da scheint das Modul ja wirklich eine Macke zu haben oder irgendeine komische Eigenheit. Weil was zu Hölle macht der große Stromimpuls und warum. Ich weiß es nicht. Ich würde das nicht als Dauerzustand haben wollen. Leider fehlt im verlinkten Thread die letzte Antwort von Digikeijs was sie dazu gesagt haben. Ich würde mich nicht an dem Modul festhalten. Wird deine Anlage mittels DCC gesteuert?

Hallo,
ja ich Steuer alles via DCC über die Software Rocrail.
Das ganze lief bis jetzt ohne Probleme seit über zwei Jahren allerdings an der Originalen DR5000 Zentrale.
Diese habe ich dann aufgrund der zu langsamen H-Bridge durch eine DCC++ Arduino + Motorshield Lösung ersetzt.
Der Motorshield kann jedoch nur 12v am Eingang ab, ich habe Ihn mit 15,5 Volt gespeist das hat er verkraftet wurde jedoch schnell relativ Warm.
Deshalb nun der Zusatz Booster, hier ist es nun erstmals aufgefallen das die Module soviel Strom rausfeuern beim schalten.

Das Hochsetzen der maximal Last am Booster hat das Problem schon mal nicht behoben.....