If schleife verzögerung

Er schaltet eine LED leiste an wen die Tür öffnet blinkt vorm schließen und geht aus. Die beiden Taster weckselnd den Status auf 3 2oder 4 um und setzen den sensor ausser Funktion.

Das eigentliche Problem ist das der sensor 3 sek oder 1 bis 5 Minuten einzustellen ist und der repeater Modus im 3 sek tak nicht funktioniert.

Dann zeige mal den Sketch gut kommentiert und formatiert mit CTRL T im IDE und hier in Codetags "</>" reinkopiert.

Was noch auffällt, es gibt keine if-Schleifen.

Na klar gibt´s die :nerd_face:

static bool fridayAfternoon;
  NotFridayAfternoon: if(fridayAfternoon^1) goto NotFridayAfternoon;

:rofl: :rofl: :rofl:

Vorab: Bitte lesen! Wie man dieses Forum benutzt - bitte lesen
Da ist erklärt, wie Du den Code richtig einbaust.
Das kannst Du auch noch jetzt ändern.

Dann ist Dein Konzept falsch.

Also Deine ganzen delays sind verwirrend und warum delay(0);?

Aber egal.
Vieleicht sowas hier?

bool Sammy = false;
bool sammyMerker = false;
unsigned long lastmillis = 0;
const unsigned long timer = 7000; // Zeit in ms
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));;
}

void loop()
{
  Sammy = digitalRead(10); //anfang
  if (!Sammy)
  {
    if (!sammyMerker) // hier muss ein teimer hin 7 sekunden reset wen sammy auf 1 ist
    {
      sammyMerker = true;
      lastmillis = millis();
      Serial.println(F("Starte Timer!"));
    }
    else
    {
      if (millis() - lastmillis >= timer)
      {
        Serial.println(F("Timer ist abgelaufen!"));
        sammyMerker = false;
      }
    }
  }
  else
  {
    if (sammyMerker)
    {
      Serial.println(F("Reset des Merker ohne Zeitablauf"));
      sammyMerker = false;
    }
  }
}

ok super werd es mal versuchen umzusetzen hab leider so gut wie keine Ahnung davon sollte alles ein freund machen naja nu versuche ich selbst seid 4 Wochen.

Also Deine ganzen delays sind verwirrend und warum delay(0);? verstehe die frage nicht was soll ich sonst schreiben wen ich eine pause will?

delay(0); würde eine Pause von 0 Millisekunden machen. Es macht also keine Pause. Also ist die Anweisung unsinnig.

Es ist auch besser Programme ohne Pausen zu schreiben.

Ich dachte immer
else if
schreibt man zusammen. Wozu der extra Block {}

Ja, super, das dich die ganzen Hinweise und Tipps überhaupt nicht interessieren.

Und ganz wichtig, setze dein Code bitte in Code Tags damit es besser lesbar ist.

Bitte zitiere richtig.

Naja, Du musst schon rein schreiben, wie lang Deine Pause sein soll. 0 ist keine Pause.

Weil noch nicht klar ist, ob es noch eine weitere Reaktion(en) geben muss, wenn Sammy HIGH. Bzw, wenn sammyMerker == LOW

In der endgültigen Fassung wird das runtergekürzt. Aber die Zeile kann man sich z.B. lassen um weitere debug-Ausgaben zu machen.

Ok, hab den Sinn verstanden. Danke

Block Klammern kosten nichts und erhöhen oftmals die Lesbarkeit .

kp wie das geht? ich bin LEGASTENIKER sorry war falsch um hilfe zu fragen

Einfach mal genau lesen was wir geschrieben haben.
Wenn man etwas nicht versteht, kann man nachfragen.

Sei nicht beleidigt.
Dir hat niemand was getan.
Siehe #10 - das ist alles drin.
Und nu schau, ob der Schnipsel das macht, was Du willst.

hat leider nicht geklappt verstehe auch leider 0 was der code bewirken soll baue ich ihn ein hab ich ein konflickt mit int sammy vermutlich muss ich einfach damit leben und den timer auf 1 min stellen da dann ja alles genau so leuft wie es soll trotzdem vilen dank werde es noch etwas weiter versuchen aber in 3 4 h gebe ichs auf xd

Nein, nicht einbauen.
Der Code soll allein laufen und im Seriellen Monitor sollst Du drauf achten was passiert, wenn Du Auf die Taste drückst, diese wieder loslässt bzw. die Taste sehr laange drückst usw.

ah ok das krige ich hin

Starte Timer!
Reset des Merker ohne Zeitablauf
Starte Timer!
Reset des Merker ohne Zeitablauf
Starte Timer!
Timer ist abgelaufen!
Starte Timer!
Timer ist abgelaufen!
Starte Timer!
Timer ist abgelaufen!
Starte Timer!