Hallo,
ja mein erstes lebenszeichen hier im Forum, bitte daher um etwas Nachsicht.
Meine erste Frage:
Können millis Zeitfunktionen gleichzeitig in unterschiedlichen void-Funktionen
ausgeführt werden?, in der Loop ist das kein Problem, aber in den void´s scheint
es nicht zu fuktionieren.
Ich hab die Frage auch noch nicht verstanden.
Es gibt ja nicht mehrere millis() sondern quasi nur eine globale Zeit die läuft.
Und damit musst du dann was machen.
Da du uns deinen Sketch noch nicht gezeigt hast wissenw ir also nicht was du genau willst und können dir folglich auch nicht weiter helfen.
Wenn die erfahrenden Coder mir ein "ja" geben kann man auch über mein Code sprechen.
Die erfahrenen Coder haben keinen Bock, zu solchen Fragen verbindliche Antworten zu geben. Und warum nicht? Weil man mit den Brocken die Du hier reinwirfst nix anfangen kann.
Also gibt Dir einen Ruck und uns eine lauffähige Version Deiner Versuche - DANN kann Dir geholfen werden.
Hallo hajos118,
ja, das war die einzige Möglichkeit für mich das sich nach ablauf der Zeit wieder der Status ändert,
also k2 wieder abfällt.
Ich denke mal das ich mich da in etwas verrannt habe, ich wollt einfach nur in die R1Zu() springen
k2 einschalten und nach vorgegebener Zeit mit Hilfe von "millis" k2 wieder abschalten
Das was du suchst bzw. das was du programmieren musst ist in der digitalen Welt ein Monoflop.
Dir fehlt noch ein Übergabeparameter zum steuern der Funktion.
Das ist bei mir eine Funktion mit switch case und enums. Also ein kleiner Zustandsautomat.
Also. Du schaltest das Relais ein und merkst dir die Zeit. Die Zeit deiner Armbanduhr namens millis.
Wenn geschalten und Zeit gemerkt gehts zum Zustand warten über. Hier wird abgefragt ob die Wartezeit vorbei ist. Wenn ja wird das Relais ausgeschalten und der Zustand wieder in Idle gesetzt. Wenn nicht, wird nichts gemacht und bei erneuten Aufruf der Funktion nur wieder kurz geschaut ob die Wartezeit schon vorbei ist.
Du kannst dich über Zustandsautomaten schlau machen.
Hallo Doc_Arduino,
ich denke sowas änliches habe ich mir schon durch die ganzen Flag´s gebastelt.
Das einschalten des Relais wird dezeit so angedacht, die Logik in der loop entscheidet das zu R1Auf()
gespungen wird, dort soll das Relais eingeschaltet werden und nach Ablauf der Zeit wieder ausgeschaltet
werden.
Oder das Relais wird bereits durch die Logik mit eingeschaltet und dann nur in der R1Auf() ausgeschaltet.
Wie auch immer, das mit den millis ist ein erheblichen Aufwand und mag bei einem "blinki" noch angehen
aber bei 12 Relais !!!!
Ich binn nicht auf millis festgelegt, also wenn da jemand da eine Idee hat dann bitte mal melden.