Wie kann ich eine Ausschaltverzögerung machen?

hallo,
ich habe folgendes vor:

Wenn man einen Taster drückt, dann soll ein Fließband angehen und 10s lang (ab dem loslassen des Tasters) laufen. Dazu brauche ich eine Ausschaltverzögerung. Wird der Taster wieder gedrückt, bevor die Zeit abgelaufen ist, sollen wieder 10s von neuem gezählt werden.

Ich habe schon nach einem passenden Sketch im Internet geschaut, doch ich habe keinen gefunden.

Das habe ich bereits fertig, leider funktioniert es nicht so wie ich es mir vorstelle.

Vielen Dank für die Antwort

void loop()
{
    if (digitalRead(Taster, HIGH))
   {digitalWrite(Band, HIGH);
    currentMillis = millis();//Zeitstempel
    while (millis() - currentMillis < 10000); //warten xxx millis
    digitalWrite(Bans, LOW);
    currentMillis = millis();//Zeitstempel
    while (millis() - currentMillis < 1000); //warten xxx millis
    }
}

vieleicht willst mal das lesen:
https://werner.rothschopf.net/202003_arduino_retriggerbares_nachlaufrelais.htm

und wenn's Spaß macht, geht's hier weiter:
https://werner.rothschopf.net/202003_arduino_retriggerbares_nachlaufrelais_oop.htm

Hallo
läuft der Sketch aus schon?
Dann kannst du den übernehmen und die Logik anpassen.

Vielen Dank noiasca,

ich habe es mit dem verlinkten Sketch ausprobiert und es funktioniert :slight_smile:

/*
  by noiasca 
  http://werner.rothschopf.net
*/

const byte buttonPin = 1;     
const byte outputPin = 12;      
uint32_t previousMillis = 0;   

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(outputPin, OUTPUT);
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {
    digitalWrite(outputPin, HIGH);
    previousMillis = millis();   // save the time when we switched on the output
  }
  if (millis() - previousMillis > 3 * 1000UL && digitalRead(outputPin) == HIGH)  
  {
    digitalWrite(outputPin, LOW);
  }
}

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.