Posts by Colonn

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!

    Gut also das Problem hat sich gelöst war wohl ein wackler oder sowas. Komisch ist nur: Wenn ich den Schalter auf OFF stelle dreht der Servo sofort ohne Verzögerung. Wenn ich dann auf ON stelle wartet er die gewünschte Zeit. Eigentlich sollte es aber andersrum sein. HIGH und LOW tauschen ist nur wenig sinnig, da damit ja die folgenden Aktionnen verknüpft sind wie Relais ein/aus, etc. oder?


    Habe gerade mal überall eine Verzugszeit reingeschrieben, aber selbst da geht der Servo bei OFF direkt zurück.

    So die Version mal länger getestet. Nach ca 2 Minuten macht sich der Servo selbstständig und öffnet/schließt ohne Signal. Schalter habe ich mal abgeklemmt damit ich den ausschließen kann. Ein Softwareproblem oder eher Hardware?

    So habe jetzt mal wieder Zeit gehabt. Habe das Programm getestet und es funktioniert... für eine halbe Minute ungefähr. Dann geht erstmal garnichts mehr am Servo. Nach einer weiteren halben Minute geht der Servo zwar wieder, aber es gibt beim schließen plötzlich keine Verzugszeit mehr. Sowohl auf als auch zu geht direkt. :-/:-/

    Guten Tag Colonn,

    Noch ein Hinweis zu den millis():
    Irgendwann nach einigen Monaten läuft auch diese Variable mal über, das heißt der Zählwert beginnt wieder bei 0 ( Null).
    Nun weis ich nicht, ob dein Arduino im Dauerbetrieb und ständig unter Strom bleibt, und ob dieser Überlauf-Effekt bei dir auftreten könnte.
    Darum prüfe ggf ob der Startwert aus millis() ausgelesen Plus der Verweilzeit überhaupt erreicht werden kann. Nicht dass das Programm dann in eine Endlosschleife festhängt, ohne das die Abschaltbedingung erreicht werden kann.
    Wenn dieses Steuer-Arduino nur dann unter Spannung ist, wenn du in der Werkstatt / Garage arbeitest, dann betrachte diese Anmerkung als Gegenstandslos.

    Das mit den millis sollte kein Problem sein. Wenn die Werkstatt abgeschlossen ist, dann ist alles stromlos sprich der Arduino aus. Aber trotzdem danke für den Hinweis.

    Also welchen Strom die ziehen habe ich noch nicht gemessen. Aber mit der externen Spannungsquelle funktioniert das genau so wie ich es mir vorgestellt habe.

    Danke schonmal! Morgen erweitere ich den Code dann für die anderen beiden Servos und schaue mal.

    Haha :bravo2:

    jetzt geht es auch. Der Servo lässt den Arduino also für Millisekunden abstürzen und deswegen hatte ich das Problem. Code funktioniert jetzt. Werde das mal mit den zwei weiteren probieren ob es dann immernoch funktioniert.

    Der Arduino zählt die Millisekunden von seinem Start an. Die Zahl kannst du mit millis() abfragen. Du fragst also die Zahl ab und erhältst zum Beispiel 1453812, dann rechnest du 2000 ms drauf (also 2 Sekunden) und prüfst in der Schleife immer wieder, ob milis() größer ist als diese Zielzeit (1455812). Wenn das der Fall ist, schaltest du den Servo, weil dann die 2 Sekunden um sind.

    Habe gerade schon ein wenig Hoffnung verspürt. Es geht kurz einmal aber dann wenn man es ein zweites mal probiert fährt der Servo nurnoch andeutend die 90 an aber bricht ab. Als wenn ein Befehl kommen würde fahre zurück obwohl er nichtmal angekommen ist.

    Ich habe den Code mal hochgeladen und meine Pins eingesetzt. Da passiert bei mir garnichts dann :conf:

    Okay aber was hat es mit den millis auf sich? Das habe ich noch nicht ganz verstanden.

    Hey

    danke erstmal für die zahlreichen Kommentare. Mit den Variablen habe ich versucht das Problem zu lösen, dass auch wenn ein Gerät ausgeschaltet aber zuvor auch nicht angeschaltet war die If Schleife für LOW trotzdem durchlaufen werden würde.

    Mein Problem ist das der Servo nicht direkt angesteuert wird, sondern erst nach einer gewissen Zeit. Das er beim ausschalten verzögert ist klar. Durch die Variablen dürften sich die Zeiten auch nicht addieren.

    Wäre für andere Lösungsansätze oder ein komplett anderes Programm offen. Die Funktion ist mittlerweile sicherlich bekannt: Nach Schalter High soll Servo angesteuert werden, nach LOW wieder nach 2 Sekunden zurückgesetzt. Das ganze mit drei verschiedenen Servos/Schaltern.


    Danke schonmal!