LED an -> Motor starten -> LED aus

Hallo zusammen,

ich habe ein kleines Problem, bei dem ich Eure Hilfe bräuchte.

An meinem kleinen Modell-Garagentor ist eine LED angebracht, die 2,5 Sek. bevor das Tor
aufgeht anschaltet.
Auf Knopfdruck (IR-FB) geht das Tor auf (dauert ein paar Sekunden).
Danach sollte die LED noch ein paar Sekunden weiter leuchten und wieder aus gehen.

Leider komme ich beim "Weiterleuchten und ausgehen" nicht weiter.
Folgenden Code habe ich verwendet (funktioniert mit LED an -> Motor starten) ohne Probleme.
Nur das folgende "Weiterleuchten und Ausgehen" will nicht klappen:

case 0xFF629D: // UP button pressed

digitalWrite(led1, HIGH); // LED geht an
delay(2500);
for (pos = 84.5; pos >= 14.2; pos -= 1)
{
servogarage.write(pos); // Servo öffnet Garage
delay(100);

}
break;

So nur umgekehrt beginnt dann auch das Tor schließen...

Vielen Dank erstmal,
Chris

Hi

Mir düngt, Das ist nicht der ganze Code - nun denn.

  1. delay() ist böse

  2. Was hält Dich davon ab, hinter dem delay(100); eine weitere Wartezeit einzusetzen, damit die LED noch Nachleuchtet, um Diese dann auszuschalten?

  3. Der umgekehrte Weg dann für die andere Fahrtrichtung.

Davon ab: Was soll's eigentlich werden und wie soll's funktionieren?
Vll. ergeben sich 'bessere' Möglichkeiten, Das umzusetzen.

MfG

Schau dir doch einmal Blinck without delay an. Danach sollte schon einiges verständlicher sein.

Was spricht denn gegen ein

case 0xFF629D: // UP button pressed
                    
                      digitalWrite(led1, HIGH);   // LED geht an
                      delay(2500);
                      for (pos = 84.5; pos >= 14.2; pos -= 1)
                         {
                      servogarage.write(pos); // Servo öffnet Garage
                      delay(100);
                         }
                      delay(2000); // noch 2 Sekunden weiter leuchten
                      digitalWrite(led1,LOW); jetzt LED ausschalten
                      break;

Das ist zumindest die einfache Lösung. Es muss meiner Meinung nach nicht immer das BlinkWithoutDelay sein, wenn der Sketch nur eine einzige Aufgabe hat.
Klar ist das dann universeller einsetzbar, aber wenn es ein einfaches Problem ist, darf es auch mal eine einfache Lösung sein.

Als Erweiterung wäre aber z.B. denkbar das die LED 2,5 Sekunden vor dem Tor öffnen anfängt zu blinken, während das Tor geöffnet (oder auch geschlossen wird) weiter blinkt und noch 2 Sekunden nach dem Öffnen / Schliessen blinkt, ehe auch die LED ausgeht. Das wäre nachdem der erste Teil funktioniert eine schöne Aufgabe sich mit den Nebenläufigkeiten zu beschäftigen.

Mario.

Hallo

bei dem was wir das sehen passiert ja folgendes

Du erkennst die Taste der Fernbedienung
Led einschalten
2,5 sekunden nix machen der Uno macht pause und auch dein übriges programm geht nicht mehr
den Servo langsam von 85 auf 14 grad fahren

wie soll dann wann die LED wieder ausgehen du must sie schon irgendwann auch wieder ausschalten

Es ist ja schon angesprochen worden schau dir das Beispiel Blink without delay an und verwende für deine Wartezeiten besser millis()

Hi

Nebenher gefragt: Was machen die Komma-Grade in der FOR?
Was denkst Du, kommt am Servo davon an?

MfG

PS: persönlich wäre ich auch für eine Lösung ohne delay ... aber Jedem, wie Er will.