ich brauche kein Puffern der Ausfallzeit. Es soll nur solange Saft da sein, dass in diesem Fall der Prozessor eine Signal bekommt und die notwendigen Werte in die EEproms schreibt. Wenn man mit der Spannungsversorgung einen Elko bzw. GoldCap betreibt, der über den Batterieeingang die Schaltung versort und über das Absinken der Spannung über den externen Eingang ein Signal erzeugt, welches im Prozesor lebenskonservierende Maßnahmen veranlasst, wäre doch das Ziel erreichbar. Oder sehe ich da was falsch?
@Dominik Warum verwendest Du Delay Befehle. Hast Du die Timer schon verwendet?
Für welche Digitalzentrale willst du den Decoder benutzen? Diese Blaue von Märklin mit dem schwarzen Knopf und der Nummer 280A. Steht MÄRKLIN SUPER darauf... Avartar: wie alles begonnen hat....
weil die Servo Library den Timer One deaktiviert. Müsste ich mir manuell Signale erzeugen. Kann ich machen, dauert aber dementsprechend bis ich das hinbekommen habe. Und zunächst noch nicht so wichtig für mich. Steht halt die Bekohlungsanlage noch.
Zitat von michl080 im Beitrag #38 ich habe nur 5 Minuten gesucht: TPS3618. Klar, bei Farnell kann nicht jeder bestellen, aber als Orientierung sollte es reichen. Diese Teile gibt es von allen üblichen Verdächtigen.
Michael
Hallo Michael,
danke für den Tipp. Habe die Batterie durch einen Elko mit Ladeschaltung ersetzt und des /RESET Ausgang des TPS3618 mit einem interuptfähigen Eingang des Prozessors verbunden. Das langt, um nach dem Ausschalten der Versorgungsspannung mit dem Saft aus dem Elko die Daten im EEprom zu sichern.
fürs Roco-Line Gleis hatte ich mir einen Low-Cost Radkontakt gebastelt. Mit Metallrädern funktionierte das einwandfrei.
Dazu habe ich drei 1 mm Bohrungen durch den Gleiskörper erstellt und dann den Messingfederdraht durchgesteckt. Die 2 Bohrungen nebeneinander sollen ein Verdrehen des Drahtes verhindern.
Zur besseren Erkennbarkeit ist der Kontaktteil im Bild rot gestrichelt.
|addpics|g9-8-c2f4.jpg|/addpics|
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio
Zitat von michl080 im Beitrag #38 ich habe nur 5 Minuten gesucht: TPS3618. Klar, bei Farnell kann nicht jeder bestellen, aber als Orientierung sollte es reichen. Diese Teile gibt es von allen üblichen Verdächtigen.
danke für den Tipp. Habe die Batterie durch einen Elko mit Ladeschaltung ersetzt und des /RESET Ausgang des TPS3618 mit einem interruptfähigen Eingang des Prozessors verbunden. Das langt, um nach dem Ausschalten der Versorgungsspannung mit dem Saft aus dem Elko die Daten im EEprom zu sichern.
Ich habe das Ganze nun materialisiert.
Die Anschlüsse: recht unten: VCC +5V von der Spannungsversorgung recht oben: GND links unten: VCC +5V zum Prozessor (alle anderen Geräte sollten nicht hier sondern rechts unten angeschlossen werden) Links oben: /Reset high/low Pegel beim Abschalten der VCC der Spannungsversorgung und Umschalten auf die Hilfsspannung des Kondensators.
Der Kondensator hat 220µF 16V und langt aus, um sicher 2 Byte (uint16_t) in den EEporm zu schreiben. Dies muss jedoch direkt in der Interruptroutine erledigt werden, da der Loop nicht unbedingt noch drankommen muss. Da hier 5V anliegen, langt sicher auch ein 6V Typ mit höherer Kapazität. Habe aber z.Z. nichts anderes da. Der Kondensator wird von der Spannungsversorgung über einen Widerstand von 220 Ohm aufgeladen und eine Diode verhindert das Abfließen des Stroms, wenn die Spannung ausfällt. Der Rest ist aus dem Datenblatt entnommen. Ein 10 kohm Widerstand zieht den /Reset noch auf high.
Hier noch was zum Spielen mit einem Aduino Pro Mini. Dabei habe ich vom FTDI Adapter die VCC Leitung nicht geschaltet und die kleine Schaltung zwischen Spannungsversorgung und Pro Mini gehängt. Dann zum Testen einfach die Spannungsversorgung unterbrechen/abziehen und wieder einschalten.
//------------------------------------------------------------------------ // // Modellbahnprojekte mit dem Arduino - HS Inhalt in EEprom nach Spannungsausfall retten 1.0 // // // Copyright (c) 2016, 2017 Manfred Lenk // // This source file is subject of the GNU general public license 2 // //------------------------------------------------------------------------
pinMode(switchOffPin, INPUT); //Eingang für Spannungsabfall attachInterrupt(digitalPinToInterrupt(switchOffPin), susidata, FALLING ); //ISR für den Dateneingang: Interupt 0 = Pin 2; Funktion; bei Wert wechselt von HIGH auf LOW }
void loop() { // put your main code here, to run repeatedly: static boolean first = false; static boolean totstellen = false; char text[3] = {' ', ' ', ' '}; char eingabe; int i = 0;
// const unsigned int ledPinMaxCount = 10000; // static unsigned int ledPinCount = ledPinMaxCount; static boolean ledPinToggle = true;
if (first == false) { first = true; Serial.println("loop"); }
if (Serial.available()) { //wenn etwas über den seriellen Port rutscht delay(100); //warte 100ms
while (Serial.available() > 0) { //solange etwas rüberkommt eingabe = Serial.read(); if (i < 3) text[i++] = eingabe; } if (text[0] != ' ') valueSerPort = atoi(text); // Text in Zahl konvertieren }
Die Eingabe neuer Zahlenwerte (max. 3 Stellen) erfolgt über die serielle Schnittstelle. Beim Wiedereinschalten der Spannungsversorgung sollte der zuletzt eingegebene Wert angezeigt werden. Bei mir tat er es zuverlässig.
Viel Spass beim Basteln. Nun kann es an den Achszähler gehen. Manfred
ich habe mich ebenfalls schon seit längerem mit der Problematik eines Achszählsystems für die Frei- und Besetztmeldung von Gleisfreimeldeabschnitten auf der Modellbahnanlage beschäftigt.
Als Ansatz für den Achszähler habe ich die ersten drei Links aus dem Beitrag #2 mit den zwei Lichtleitern im Schienenkopf und den beiden in einer Achszählattrappe eingebauten IR-Sende-Dioden verwendet.
Es funktioniert. Auch RP25-Radsätze wurden auf einer Teststrecke bei höheren Geschwindigkeiten fehlerfrei erkannt. Bei einem RoLa-Wagen mit 4,8mm Raddurchmesser, allerdings Standardspurkranz, wurden ebenfalls alle Achsen korrekt gezählt.
In die Attrappe des doppelten Achszählers baue ich jedoch nur eine IR-Sende-Diode ein, welche auf beide Lichtleiter strahlt. Für die beiden Lichtleiter bohre ich zwei Löscher in den Schienenkopf/-steg.
Die Achszählpunkte und auch der Achszählrechner sind mit Mikrocontrollern aufgebaut.
In der derzeitigen Testversion ist der Achszählrechner über den SX-Datenbus mit der Zentraleinheit verbunden. Er kann durch diese grundgestellt werden und meldet den Frei- und Besetztzustand sowie eine Sammelstörmeldung an die Zentraleinheit weiter.
Der Achszählrechner ist aber noch zusätzlich über einen RS485-Bus, an dem noch weitere Achszählrechner angeschlossen werden können, mit einer Achszählrechner-Zentrale und dann weiter über RS232 mit dem PC verbunden. Durch diese Anbindung können dann weitere Steuerbefehle an die angeschlossenen Achszählrechner gesendet und zusätzliche Informationen von ihnen abgefragt werden. Dazu gehören zum Beispiel, dass eine bestimmte Achsenzahl vom PC aus für jeden einzelnen Gleisfreimeldeabschnitt gesetzt und ebenso die aktuelle Achsenzahl an den PC gesendet werden kann. Somit können die Achsenzahlen vor dem Ausschalten der Modellbahnanlage auf dem PC gespeichert und vor dem Beginn des Modellbahnbetriebes wieder geladen werden. Die einzelnen Störmeldungen, welche die weitergemeldete Sammelstörung an die Zentraleinheit bilden, werden ebenfalls übertragen. Desweiteren können die Spannungswerte der Fototransistoren der beiden Lichtschranken jedes einzelnen Achszählpunktes abgefragt und an den PC übertragen werden. Diese Abfrage sollte vor jedem Einschalten der Modellbahnanlage durchgeführt werden, um sicherzustellen, dass die Lichtschranken korrekt ausgerichtet und nicht verschmutzt sind.
Dieses Achszählsystem arbeitet selbstätig, es ist fahrtrichtungsunabhängig und unabhängig von irgendeiner Fahrwegsteuerung. Alle Achsen, welche in den Gleisfreimeldeabschnitt eingezählt oder durch den PC gesetzt wurden, müssen ausgezählt werden, damit der Gleisfreimeldeabschnitt als "frei" gemeldet wird.
ich finde das Thema sehr spannend, auch weil ich mir vor Jahren selbst Gedanken zu einem Achsenzähler gemacht hatte.
Aber: Ist das nicht alles sehr aufwendig im Vergleich zu einem Belegtmelder per Stromfühler?
Im Puko-System und bei voneinander isolierten Schienen (v.a. K- aber auch C-Gleis nach Anpassung) ist das ja ganz einfach über die leitenden Achsen.
Im Zweileitersystem ist es aufwendiger mit einem Achs-Widerstand (ca. 10 kOhm) pro Wagen.
Abgesehen vom Spass an der technischen Lösung und es muss nichts an den Modellen geändert werden:
Gibt es deutliche Vorteile in der Praxis durch die je 2x Achszähler gegenüber 1 x Stromfühler pro Block?
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio
Hallo Bernhardt, Dein Vorschlag mit den Widerständen ist ja theoretisch wunderbar, z.B. 10x10kOhm parallel macht 1k, die Elektronik sagt ok, gut. Aber wenn nur ein Wagon eine Kontaktschwäche zeigt heisst das Error und der Fahrdienstleiter verweigert die Weiterfahrt, obwohl alle Achsen vollzählig. Hier liegt doch das Problem im System "Radsatz-Schiene-Kontakt" oder eben kein Kontakt, auf solche Unsicherheiten kann man nicht bauen weil eben sehr unzuverlässig, es gibt nur einen statistischen Wahrscheinlichkeitswert ähnlich wie in der Quantenmechanik. Darum finde ich die Idee mit den optischen Sensoren gut weil eben keine Kontaktunsicherheiten das Ergebnis verfälschen. Sehr aufwendig ist das mit deinen Widerständen auch, aber Du wirst damit nie ein brauchbares Ergebnis erzielen. Ist letztenendes eine Frage von Aufwand und Nutzen, wie bei allem.
richtig, der Rad-Schiene Kontakt ist ein Thema beim Stromfühler und bei nur 1 Wagen mit Widerstandsachse im Zug u.U. relevant.
Jedenfalls hatte ich das ausprobiert auf meiner mittlerweile abgerissenen M-Gleis Testanlage mit Wagen, die einen Schleifer hatten, das funktionierte einwandfrei.
Ob das bei 2-Leiter und Widerstandsachsen auch so ist, werde ich ausprobieren, bin derzeit nur mit viel anderem Kram belegt.
Nur der guten Ordnung halber: 2x10 kOhm parallel ergeben 5 kOhm. 10x 10 kOhm parallel ergeben 1 kOhm.
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio
Hallo Bernhardt, im 3-leitersystem ist die Kontaktierung halt besser als bei 2-leiter, bleibt aber trotzdem ein Lotteriespiel. .....Nur der guten Ordnung halber: 2x10 kOhm parallel ergeben 5 kOhm. 10x 10 kOhm parallel ergeben 1 kOhm."" Ganz genau das hab ich geschrieben: 1k und nix von 5k??????
uups, 10x 10 kOhm parallel sind natürlich 1 kOhm und 10 kOhm und 10 kOhm parallel sind 5 kOhm ... Lesefehler ...
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio
so ein Achszählsystem ist natürlich sehr aufwendig in Bezug auf einen Belegtmelder. Das betrifft nicht nur die Lichtschranken am Gleis, sondern auch das Bestücken der Leiterplatten, welche ich vorrangig in SMD-Technik ausgeführt habe.
Im 2-Leiter-System habe ich jede Achse (NEM-Radsätze) eines Waggons mit einer Widerstandsachse versehen. Mit der Belegtmeldung gab es damit nie Schwierigkeiten. Bei der Umrüstung auf RP25-Radsätze habe ich mir jedoch vorgenommen, diese nicht mit Widerständen zu bestücken.
ich denke die Belegtmeldung hier war sekundäres Ziel, interessanter ist doch die Fehlermeldung bei Zugabriss und verlorene Wagons und da wird dieses System doch erst richtig interessant. Achszahl stimmt nicht lößt eine Fehlermeldung aus, als Analogbahner hab ich darüber auch schon mal nachgedacht.
Für welche Digitalzentrale willst du den Decoder benutzen? Diese Blaue von Märklin mit dem schwarzen Knopf und der Nummer 280A. Steht MÄRKLIN SUPER darauf... Avartar: wie alles begonnen hat....
Hallo Ralf, für Fehlzählungen kommen mehrere Ursachen in Frage, systemabhängig. Hauptproblem ist und bleibt die Kontaktunsicherheit der Radsätze. Bei deiner Beschreibung der hohen Geschwindigkeiten kommen noch weitere hinzu, Thema Steuerzeiten. Ich hatte auch mal ein ähnliches Problem mit Hall- Sensor und 5mm Magnet. Ab 40cm/sec Zuggeschwindigkeit wurde die Bahnhofs-Einfahrtweiche nicht in jedem Fall geschaltet, mal ja und mal nicht. Nach reichlicher Überlegung und Berechnung der Schaltzeit wurde der Grund sichtbar: Die Zeit war einfach zu kurz, unter 20ms, die Weichensteuerung benötigte aber mehr als nur eine Vollwelle bei 50Hz um den Schaltvorgang auszulösen. Das war des Rätsels Lösung. Es ist kaum vorstellbar, daß eine Modellbahn einen 50Hz Wechselstrom in dieser Art austricksen kann, aber es ist so.
Zitath die Fehlermeldung bei Zugabriss und verlorene Wagons
Genau so ist das. Würde es nicht ausreichen, wenn jeweils der letzte Wagen Achsenwiderstände hätte?
Da es hier um Achszähler geht, bitte Nachsicht wegen o.T.
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio
na ja, wären ja mindestens 2 Achsen oder bei 2 Wagen mindestens 4 usw.
Wäre es nicht einfacher, anstatt der Achsen die Wagen zu zählen? Das ging doch mit einer simplen Lichtschranke und wie weiter oben schon geschrieben, wichtig ist nicht die Zahl der Achsen sondern die Anzahl der Impulse beim Einfahren in einen Block und beim Verlassen desselben.
Zudem: Was ist eigentlich bei Rangierfahrten mit Zugaufteilungen, da kann ja ein Achszähler nicht zum Einsatz kommen, oder?
Viele Grüße Bernhard ------------------------------------------------ Spurweite: H0 analog oder digital "AC" und "DC", N-Spur, Epoche +/- IIIb, DB, SBB, BLS, ÖBB, SNCF, FS, ESU ECoS I + II, ESU-Programmer, ESU-Prüfstand, Roco-Multimaus, Digital 2-Leiter, Decoder: ESU, Lenz, D&H, Zimo, Märklin, Sounddecoder, TrainController 8 Gold, Wintrack 16, 3D-Modellbahnstudio