Startbewegungen von Servos unterdrücken

  • Hallo Atchy,


    ungefähr so habe ich mir das vorgestellt. Bleibt eine Frage: woher kennst du nach dem Einschalten die Adresse, bei der gelesen werden muss?


    Verwendest du die normale Servo - Library des Arduinos oder hast du hier eine bessere Lösung. Ich habe Servos, die etwa 210 Grad abdecken. Die Arduino - Library begrenzt aber den Bereich auf 180 Grad.


    Gruss

    René

  • Hallo René,

    du kannst die 100.000 Schreibzyklen umgehen, indem du die Speicheradresse bei jedem abspeichern änderst und nur Updates ausführen läßt, wenn sich die letzte Stellung verändert, zum Beispiel mit dieser Funktion (die Deklaration der Variablen habe ich, der Kürze wegen, mal weggelassen):

    Code
    1. void eepromWriteInt (int adr, int wert) {
    2. // Integer in das EEPROM schreiben
    3. byte low, high;
    4. low = wert & 0xFF;
    5. high = (wert >> 8)&0xFF;
    6. EEPROM.update(adr, low);
    7. EEPROM.update(adr + 1, high);
    8. return;
    9. }

    Das Auslesen erledigst du dann über eine andere Funktion:

    Code
    1. int eepromReadInt (int adr) {
    2. // Integer aus dem EEPROM lesen
    3. byte low, high;
    4. low = EEPROM.read(adr);
    5. high = EEPROM.read(adr + 1);
    6. return low + ((high << 8)&0xFF00);
    7. }

    Ich beschäftige mich schon seit einer Weile mit Servosteuerungen und bei mir gibt es weder ein Einschaltzucken noch sonstige Bewegungen der Servos, die unerwünscht sind.

    Grüße von Atchy

  • Hallo Atchy,


    willkommen hier im Forum.


    Wenn du dich im Forum umschaust, wirst du schnell feststellen, dass hier viel Wissen ausgetauscht wird. Obwohl Hinweise auf interessante Produkte durchaus erwünscht sind, hoffe ich, dass du gelegentlich auch etwas über das Wie schreibst und nicht nur auf einen Shop verweist.


    Bei Servos sind natürliche Bewegungen und die Unterdrückung der Startbewegung ein häufiges Problem und leider habe ich auch noch keine optimale Lösung gefunden. Das Problem ist nicht auf Modellbahnen beschränkt.


    Die EEPROM - Lösung kann durchaus vertreten werden, wenn nicht laufend geschrieben wird. Ausserdem könnte von Zeit zu Zeit die Speicheradresse geändert werden. Wenn ich mich recht erinnere, werden beim Arduino 100'000 Zyklen garantiert. Das reicht dann schon für eine Weile.


    Gruss

    René

  • Hier nochmal für die Freunde der naturgetreuen Weichenbewegung:

    !!! Das war mein Arbeitssketch, bitte nicht die Randbemerkungen überbewerten!!!

    /*Version 06


    */

    #include <Servo.h>

    #include <EEPROM.h>


    Servo c;

    bool s = false;

    int position;

    int endLinks;

    int endRechts;


    void setup() {

    //Serial.begin(9600); // Monitor zur Kontrolle

    c.attach(8);

    pinMode(7, INPUT);

    pinMode(6, INPUT);

    position = EEPROM.read(0); // 0 ist die eeprom-speicheradresse für die position

    c.write(position);

    }

    void loop() {

    if (digitalRead(6) == HIGH && !s) {

    // position festlegen


    for (int i = 80; i < 100; i++) {

    c.write(i); // -position- wurde gegen -i- ausgetauscht

    delay(50); // hier läßt sich die Geschwindigkeit regulieren

    endLinks = i;

    //Serial.print(endLinks);

    //Serial.print(" / ");

    }

    //delay(2000);

    position = endLinks ;

    //Serial.println(position);

    // position speichern

    EEPROM.write(0, position);

    s = true;

    }



    if (digitalRead(7) == HIGH && s) {

    // position festlegen


    for (int i = 100; i > 80; i--) {

    c.write(i); // -position- wurde gegen -i- ausgetauscht

    delay(50); // hier läßt sich die Geschwindigkeit regulieren

    endRechts = i;

    //Serial.print(endRechts);

    //Serial.print(" / ");

    }

    //delay(2000);

    position = endRechts ;

    //Serial.println(position);

    // position speichern

    EEPROM.write(0, position);

    s = false;

    }

    c.write(position);

    }

  • Dieser Sketch sollte funktionieren, aber aufgrund der EEPROM-Belastung nutze ich ihn nicht.


    #include <Servo.h>

    #include <EEPROM.h>


    Servo c;

    bool s=false;

    int position;


    void setup() {

    c.attach(8);

    pinMode(7,INPUT);

    pinMode(6,INPUT);

    position=EEPROM.read(0); // 0 ist die eeprom-speicheradresse für die position

    c.write(position);

    }

    void loop() {

    if(digitalRead(6)==HIGH && !s){

    // position festlegen

    position=100;

    // position speichern

    EEPROM.write(0,position);

    s=true;

    }

    if(digitalRead(7)==HIGH && s){

    // position festlegen

    position=80;

    // position speichern

    EEPROM.write(0,position);

    s=false;

    }

    c.write(position);

    }

  • Die Lösung auf die Pius verlinkt hat, sieht doch schon wie eine sehr professionelle Lösung aus. :thumbup:

    Offenbar wird auch hier die Speicherung der Servo-Position im EEPROM vorgenommen, was ja auch naheliegend ist.


    Ich habe heute nachmittag auch mal mit einem Servo herumgespielt (MG995). Ich bin davon ausgegangen, dass so eine Weiche nur zwei Stellungen haben kann.

    Wenn einmal eine Position ermittelt und der Wert ins EEPROM geschrieben wurde, klappt das eigentlich ganz gut. Der Startwert des Servos liegt ja immer 90° also in der Mitte zwischen 65° und 115°. Darum habe ich in meinem Beispiel diese beiden Werte als Weichenpositionen angenommen. Dabei ist meine "virtuelle" Weiche entweder ganz links oder rechts und hat einen "Weg" von 50 Schritten zurückgelegt.


    Die Funktionalität des Speicherns habe ich durch Resetten des Controllers (Ardunio Nano Clone) und auch durch entfernen der Stromversorgung getestet. Es funktioniert. Der Servo bewegt sich nur innerhalb der vorgegebenen Grenzen oder gar nicht. Ausgelöst wird die Weichenstellung durch einen Taster.


    Das folgende Beispiel ist nicht bis ins Letzte durchgetestet und nur ein Ansatz! In diesem Programm wird die Weichenstellung bei jedem Wechsel gesichert.

    Darum ist es auch (fast) egal wenn der Strom plötzlich mal weg ist. Aber selbst wenn das nicht der Fall wäre, der Servo würde sich ja immer auf die 90° Position zurücksetzen. Dann würde die Weiche quasi in der Mitte stehen und es kann eigentlich nicht vorkommen, dass nach links oder rechts "übersteuert" wird und sich etwas verbiegt.


    Soweit die Theorie... ohne Weichen oder eine Eisenbahn zu haben. Aber vielleicht das Programmbeispiel ja dennoch hilfreich.



    Gruß Kai

  • Hallo und guten Abend Pius !


    Danke für deinen Tipp und den Link - ich werde das einmal in den nächsten Tagen ausprobieren. Gelesen habe ich alles wohl, aber ob ich es verstanden habe, das muss ich erst noch testen. Im schlimmsten Fall darf ich sicher auch den direkten Kontakt zu Saintummers Projekte suchen, um mir Rat zu holen ?! Aber prinzipiell ist es genau das, was ich suche. Und im Sketch habe ich auch gesehen, dass es vermutlich auch ohne die Startbewegung funktionieren sollte, denn es wird Wert auf die die beiden Endlagen gelegt.

    Noch nicht klar ist mir, ob der Sketch mit einem Arduino funktionieren wird, oder ob ich da unbedingt diese Platine benötige. Vermutlich wird es aber ausreichend sein, die im Schaltbild mit () gekennzeichneten Pins des Arduino anzuschließen ???


    Wie dem auch sei, ich danke dir ganz herzlich, insbesondere aber auch für deine aufmunternden Worte - ich werde dazulernen müssen :-)


    Jetzt bereite ich mich auf die neue Woche vor - ich gehe ja noch immer fleißig arbeiten !

    Gruß Thomas

  • Hallo Thomas


    Alles kein Problem. Ich bin meist dann zu schnell am Mitdenken, vermutlich weil ich solche Herausforderungen brauche. Selbstverständlich kannst Du mit den Minis sowas realisieren und ich vermute auch mit den Mini’s müsste die Diode und der Elko funktionieren. Vielleicht hat Kai eine bessere Idee?


    Und, Dein Alter sollte schon gar kein Hindernis sein, auch ich bin bereits über 63 und brauche manchmal etwas mehr Zeit um etwas Neues für mich zu verstehen. Das Ärgste ist, dass ich jeweils viel zu lange hin- und her überlege, etwas Neues für mich anzugehen. Natürlich, die gemachten Erfahrungen lehrten mich das, andererseits freue ich mich, wenn ich Kindern zusehe, wie diese neue Dinge anpacken, scheitern und gleich wieder neu beginnen können. Ein bisschen davon will ich mir erhalten.


    So, und da Dein Problem nicht neu ist erinnerte ich mich an einen guten Bekannten, der sowas in der Art ja auch schon gelöst hat:

    Stummer's Lösung


    Vielleicht hilft Dir dies weiter oder es dient als Basis für eine eigene Lösung.


    Schönen Sonntag

    Pius

  • Ein nettes Hallo an alle eifrigen Mitdenker und Schreiber.

    Ich habe mal versucht ungefähr zu verstehen, wie ihr über das Problem denkt. Aber so richtig ist da bei mir die Leuchte noch nicht angesprungen.

    Da vielfach gefragt wird, wie und weshalb ich mir verschiedene Dinge so oder so denke …. hier noch einmal meine Ideen, die mir so kamen.


    Ich habe schon vor langer Zeit verschiedene Sketche und Schaltungen zum Betreiben von Servos ausprobiert. Da dies ganz gut funktionierte, dachte ich mir folgendes:

    da es auf meiner Modellbahn eine überschaubare Anzahl von genau 6 Weichen gibt, spielen Kosten für zusätzliche Bauteile erst einmal keine so große Rolle. Bei einem herkömmlichen Antrieb gibt es dieses unrealistische Klick - Klack - Geräusch, das ich vermeiden will. Fertige, langsame Stellantriebe wollte ich nicht benutzen, da ich gern bastle und mir selbst was ausdenke … und weil diese Dinger auch anfällig und richtig teuer sind. Außerdem habe ich unter der Anlage nicht den Platz, den man für solche Technik normalerweise benötigt.

    Deshalb habe ich mich dafür entschieden, die Antriebe seitlich von den Weichen abgesetzt an freien Stellen unter der Anlage so zu montieren, dass über das Steuerhorn an Servos die Weichen wie bei Flugzeugen im Baudenzug gestellt werden können. Die langsame Bewegung lässt sich dann einstellen. Aber wie gesagt, das Problem, dass der Servo im Einschaltmoment erst den ganzen Bereich abfährt, statt in einer der beiden Endlagen zu verharren, konnte ich bisher nicht beherrschen. Selbst der Versuch, an meinen 9g-Servos einen vierten Draht am Schleifer des Potis anzubringen, brachte noch nicht den gewünschten

    Erfolg - das liegt vor allem an meiner Unwissenheit bezüglich der Programmierung.

    Auf die Idee mit den Minis bin ich nur deshalb gekommen, weil ich mal eine Menge in China für kleines Geld kaufen konnte und so jeder Weiche einen eigenen Mikrokontroller spendieren konnte. Bei einem Ausfall / Defekt eines Minis könnte ich den dann schneller wechseln, als einen Uno oder Mega, an dem alle Komponenten der Modellbahn hängen --- da denke ich eben ziemlich praktisch, da ich mit meinen fast 68 Jahren nicht so scharf darauf bin stundenlang einen Fehler unter der aufgebauten Anlage zu suchen.


    Ich weiß, dass dieses Problem viele Modellbahnfreund interessiert. Daher ist die Idee von PIUS keinesfalls abwegig, eine dafür geeignete Schaltung zu entwickeln, da es auch noch viele andere Anwendungen im Modellbahn / Modellbaubereich gäbe. An dieser Stelle könnte ich dann sicherlich wieder sehr hilfreiche Tipps geben.


    Gern hätte ich euch auch mal ein Foto von meiner Konstruktion gezeigt - aber meine Fotos haben alle mehr als 4 MB und die sind hier leider viel zu groß.


    Ich wünsche allen noch einen schönen Restsonntag und danke für eure freundlichen Überlegungen zu diesem Thema.

  • Das mit dem externen EEPROM habe ich auch nur deshalb aufgebracht, weil ein Aruino-Mini deutlich teuerer als 85Cent ist. Thomas hat geschrieben, dass er nicht so der "Mikrocontroller-Programmierer" ist bzw. erst damit anfängt (und schon einige Minis angeschafft hat). Da ist es natürlich eine gewisse Hürde, gleich mit einem Mikrocontroller und ISP-Programmer anzufangen, wenn man den Mini nur an den USB-Port stöpseln muss, um da ein Programm drauf zu bringen. Von dem ganzen Drumherum der Beschaltung auch noch abgesehen.


    Aber du hast völlig recht ..... wir zerbrechen uns hier anderer Leute Kopf, ohne genug darüber zu wissen in welche Richtung es genau gehen soll.... ;)


    Gruß Kai

  • Hi Kai


    natürlich, das habe ich mit dem ext. EEPROM verstanden. Ich will meist möglichst viel einsparen (bei Stückzahlen), deshalb tendiere ich jeweils möglichst viel von der CPU zu benutzen. Der DIL Tiny13 liegt so bei 85 Cent bei Reichelt, dazu kommt ein Sockel. Abgesehen davon, machen wir uns wegen dem EEPROM zuviele Gedanken. Das Datenblatt nennt um die 100k Schreibzyklen und bei der Hoffnung dass man nur dann schreiben muss, wenn sich der Wert tatsächlich verändert hat, wird die lange, sehr lange reichen. Der Servo oder die Weiche wird dann vermutlich früher "verbraucht" sein.

    Aber warten wir doch mal Thomas ab, vielleicht hat er da ganz andere Ideen.

    Gruss

    Pius

  • Hallo Pius,


    ich hatte mich vertippt. Ich habe natürlich AD(-Wandler) gemeint und keine Wechselspannung. Warum muss man die CPU tauschen wenn der (externe) EEPROM Baustein defekt ist? Ich kann den doch aus dem Sockel rausholen und einen neuen einsetzen. Ist dem Controller doch egal.... denke ich jedenfalls in meinem "jugendlichen" Leichtsinn.


    Nicht, dass ich Dir das nicht glauben würde, nur würde ich auch hier gerne den Grund wissen. Nachteil ist natürlich, dass er zwei Pins benötigen würde.


    Gruß Kai

  • Genau Kai

    da die Diode als Ventil arbeitet, muss der Elko lediglich den Strom des uC liefern.


    Zitat

    Du hast unten in Deiner Skizze einen Spannungsteiler am AC ... Da denke ich wiederum, im Hinblick auf ein Minimum an Teilen, dass man hier keinen braucht. Es sollte doch eigentlich völlig reichen, einen Pin permanent auf High abzufragen ... wenn keinen Betriebsspannung mehr da ist, geht der ja unmittelbar Low...

    Nein, das vor der Diode ist natürlich DC. Das Bild soll ja nur grob die Idee veranschaulichen. Natürlich reicht es, die Abfrage mit einem Pin auf VCC zu benutzen. Aber, die EIngangspins sollten nie mehr Spannung als VCC erhalten und da kommt der Spannungsabfall über der Diode wieder ins Spiel. Noch was, wenn ich nicht weiss wie schnell die Versorgung bei einem Aus absinkt und in welcher zeitlichen Form (zuerst schnell dann ganz langsam als Beispiel) wäre vielleicht ein Schmittrigger angebracht. Andererseits würde ich mal behaupten, dass bei der CPU eh noch AD Inputs frei sind, dann würde ich es via AD Wandler realisieren. Im Falle, dass Eisenbahnen mit AC Niederspannung versorgt werde, dann wird die Detektion etwas einfacher (Nulldurchgang). Aber anstelle einer Diode würde ich da logischer weilse gleich lieber einen Brückengleichrichter benutzen. Übrigens, das habe ich auch schon bei DC gespeisten Teilen so gemacht, weil man dann Plus Minus anschliessen kann wie man will.


    Zum Arduino-Mini will ich nichts beitragen. Ich stelle mir die Kosten eher hoch vor, wenn man vielleicht 2 Weichen mit einer Platine ansteuern möchte.

    Ein Tiny13 erlaubt bereits zwei PWM Ausgänge, AD ist auch drin. Wenn ich die Rechnung für den Würfel gemacht habe, dann waren die Kosten für das Material im Bereich von ca 4.00 EUR. Würde man die Bauteile in SMD benutzen (macht den Selbstbau schwieriger) kämen die Preise noch tiefer zu stehen.
    (Wie gesagt, geschätzt).


    Ein Tiny würde da weitaus reichen. Meine Gedanken gehen dann auch gleich noch weiter. Die Verkabelung, Stromversorgung ...

    Einfaches Bussystem ? (da wäre der Tiny vermutlich zu klein)

    Längsregler vor Ort ?


    Ein separates EEPROM würde ich auch eher nicht vorsehen, insbesonder beim EInsatz eines DIL uC. Wenn es dann mal soweit wäre, dass das EEPROM am Ende ist, dann muss dann eine neue CPU eingesetzt werden.


    schönen Tag

    Pius

  • @Pius: Ach so - der Kondensator an VCC ist schon der hier angesprochene Pufferkondensator. Und damit seine komplette Ladung für den Microcontroller zur Verfügung steht, ist die Diode da? Habe ich das jetzt so richtig geschrieben? Ich glaube ich habe es jetzt kapiert.


    Manchmal brauch ich etwas länger ;).


    Du hast unten in Deiner Skizze einen Spannungsteiler am AC ... Da denke ich wiederum, im Hinblick auf ein Minimum an Teilen, dass man hier keinen braucht. Es sollte doch eigentlich völlig reichen, einen Pin permanent auf High abzufragen ... wenn keinen Betriebsspannung mehr da ist, geht der ja unmittelbar Low...


    Das sollte eigentlich über den Interrupt-Pin bei einem Flankenwechsel (Falling) locker funktionieren. In der Interruptroutine wird der Servowert in das EEPROM geschrieben..... Man könnte natürlich überlegen einen externen EEPROM-Baustein zu verwenden. Wenn der "totgeschrieben" ist, muss man nicht den Controller wechseln. So ein Teil kostet um die 60-70 Cent... wären aber wieder zwei Teile mehr (mit Sockel).


    Was den ATtiny betrifft, habe ich ja schon etwas Einblick bekommen, unter anderem auch nach Deiner letzten Mail. Allerdings hat Thomas ja geschrieben, dass er Arduino - Minis einsetzen will.


    Gruß Kai

  • Lieber Kai


    Grundsätzlich stelle ich mir immer eine nackte Atmel Umgebung vor, deshalb sind mir LIB Funktionen nicht bekannt, resp. nicht berücksichtigt. Auch auf dieser Basis denke ich in der Hardware auch „nackt“ und sehe immer erst die CPU.


    Die Diode sorgt dafür, dass die Entladung nicht in der Versorgung und anderen Lasten verschwinden kann. Wenn die 0.7V ein Problem sind, dann kann mit einer Schottky Diode der Verlust kleiner gehalten werden.


    Bei einem ATmel sind die netto Ströme so klein, dass man mit 470uF sehr weit kommt. Ein Tiny arbeitet bis unter 3V, sofern man die Brown-out Spannung nicht zu tief legt.


    Im Augenblick sollte man sich aber noch andere Gedanken machen. Wird eine solche Schaltung gebaut, die dann möglichst perfekt arbeitet, dann müsste doch der Bedarf dieser Steuerung hoch sein. Wieso nicht eine Lösung entwickeln, testen und dann eine Platine herstellen, die mit einem Minimum an Bauteilen und einem Optimum an Preis/Leistung daher kommt?

    Ich könnte da einiges mithelfen (ausser Testen, da ich auch keine Eisenbahn habe). Aber, ich habe bereits einen anderen Modellbahn Freund, der sicher auch an einer solchen Lösung interessiert wäre.


    Grüsse aus der Schweiz (heute wird es wieder warm)

    Pius

  • Hallo Zusammen


    @Pius: ich kapiere den Einsatz der Diode nicht, die sorgt doch lediglich dafür, dass der Strom nur in eine Richtung fließen kann und dass die Spannung am Pin des Microcotrollers um 0,7V niedriger ist, womit ich nur noch 4,3V zur Verfügung habe (oder ich muss die Betriebsspannung erhöhen). Ist das jetzt nur ein Verpolungsschutz oder hat das noch einen anderen Sinn?


    Was den Einsatz eines Kondensators angeht, kommt es natürlich stark auf die Stromverbrauch des Controllerboards an.

    Setzen wir mal eine Spannung von 5V und 20mA Stromverbrauch, sowie eine RC Kombination von 220Ω und einem 1mF voraus. Dann ergibt das eine Zeitkonstante τ von 250V/A * 10^-3 As/V = 0,22Sekunden.



    Nehmen wir weiterhin an, dass die Schaltung bis 80% der Spannung/Strom noch einwandfrei arbeitet, stünden ln(4V/5V) * 0,22s ≈ 0,049 Sekunden ≈ 49ms Zeit zum Speichern zur Verfügung. Zu dem Zeitpunkt wären noch u(t) = 4V und i(t) ≈ 18mA verfügbar. Das sollte doch eigentlich funktionieren....


    Für einen ATtiny wäre das jedenfalls noch mehr als genug ;). Aber diese Entwicklerboards brauchen halt doch ne Menge mehr Strom.


    Das ist jetzt auch nur so frei heraus. Ich glaube es gibt ja verschiedene Versionen des Minis... 3,3 und 5V . Ich habe mir mal die 5V Variante im Internet herausgesucht, die mit 19,9mA Verbrauch inkl. leuchtender Power-LED angegeben ist.


    Was die Schreibzyklen betrifft gibt es ja eine Update Funktion. Dann wird die Speicherzelle nur beschrieben, wenn sich der Wert geändert hat. Da aber bei Weichen meines Erachtens nach nur zwei Werte in Frage kommen, ist das eine fifty-fifty Sache und.................... es dämmert mir gerade beim Schreiben, dass man vielleicht gar nicht soviel Heck-Meck machen muss.


    Man kann doch beide Servowerte für eine Weiche fest im EEPROM vorgeben... dann bleibt bei einem Neustart die Weiche entweder stehen oder sie springt von einem Wert auf den anderen um. Dabei würde der Servo aber immer noch zwei definierte Punkte haben und nicht über diese hinaus fahren.


    Gruß Kai

  • Hallo Kai und Thomas


    ich würde mir auch das EEPROM zu Nutze machen. Mit einem fertigen Board (z.B: Arduino) müsste man die Kapazität des Stützelkos halt etwas grösser dimensionieren, der Rest der HW auch Strom verbraucht. Die Versorgung der Lasten würde ich bevorzugt vor der Diode abnehmen.

    ScanImage001.png

    Anstelle eines Pin/Change oder eines AD Einganges kann man natürlich auch einen Logik-Input benutzen, sofern der Spannungsteiler richtig definiert wurde. Das Filter C über dem R gegen Masse am Eingang soll Spikes daran hindern, dem uC das Speichern bei jeder kleinen Störung zu verhindern. Alternativ kann das auch in SW verhindert werden.


    In er Software sollte man aber versuchen das unnötige Speichern abzufangen (EEPROMS können nur eine beschränkte Anzahl Schreiboperationen ausführen).

    Beim Startup EEPROM lesen (muss man eh) und den Zustand bis zum Abschalten speichern und vor dem Schreiben testen, ob ein Schreiben notwedig ist.


    Gruss

    Pius

  • Also den Artikel hatte zufällig vor zwei Tagen mal gelesen, darum konnte ich den recht schnell posten. Was das Ausschalten betrifft gebe ich Dir natürlich recht, das kann nur über eine zusätzliche Schaltung geschehen.


    Ich habe keine Modelleisenbahn... meine Märklin Mini habe ich vor knapp 35 Jahren weggegeben😉. Deshalb habe ich das noch nicht ausprobiert aber evtl. kann man das ja über einen Kondensator lösen. Z.b. in der Weise, dass der Mikrokontroller auf einem Pin permanent die Betriebsspannung überwacht. Schaltet man die Anlage aus, so fällt die Spannung am überwachten Pin auf Null. Das ist der Trigger für den Mikrocontroller, den/die Servowert(e) ins EEProm zu schreiben. Den Strom dafür bekommt er aus dem Kondensator. Der muss die Spannung ja nur für ein paar Mikro- evtl. Millisekunden halten.


    Wie gesagt, das ist nur eine grobe Idee. Ob es funktioniert weiß ich nicht, aber Versuch macht bekanntlich klug. Evtl, kann man auch eine verzögerte Ausschaltung umsetzen, indem über eine Signalleitung erst ein Signal an den/die Controller gesendet wird, welches den Speichervorgang auslöst und erst eine Sekunde später die Betriebsspannug ausgeschaltet wird.


    Wieviele Controller man braucht hängt wohl davon ab, wieviele Servos man mit einem Controller steuert.


    Gruß Kai

  • Hallo Kai,

    zunächst einmal danke für die unglaublich schnelle Antwort !

    ich sollte vielleicht noch zusätzlich bemerken, dass ich zwar in der Modellbahntechnik gut Bescheid weiß, aber in der Arduino-Gemeinde der blutige Anfänger bin. Wir haben auch deinen Vorschlag schon thematisiert, aber die Programmierung des EEPROM ist anscheinend nicht so richtig gelungen … und dafür gibt es, zumindest für mich, auch gute Gründe. Vielleicht gelingt es noch einem Servo zu sagen, was er tun soll, bevor der Stecker gezogen wird ?! Aber eine Modellbahn hat bekanntlich meist mehrere Weichen und das bedeutet, dass man ja jedem Servo einzeln sagen müsste: " Achtung, gleich schalte ich die Anlage ab und du, bzw. der / alle Ausgänge an dem, oder auch den anderen Arduinos, müsst euch merken, wo du / Ihr gestanden habt !

    Für mich sind das programmiertechnisch noch böhmische Dörfer und neben mir, haben auch noch viele andere Modellbahnfreunde gehofft, dass schon mal jemand einen Sketch liefern kann, der schon funktioniert. Wenn es nur erst für eine Weiche funktionieren würde, dann wäre das für mich OK, denn ich habe mir vorsichtshalber viele Minis gekauft - ich könnte also jeder Weiche einen Mini spendieren. Das hätte auch den Vorteil, dass bei einem Defekt nicht gleich alles ausfällt !


    Wie siehst du das ?

    Nochmals danke und nette Grüße,

    Thomas