Wenn man kein retriggerbares Monoflop braucht, geht natürlich auch delay().
Sobald der Trigger ausgelöst ist, wird das stur abgearbeitet.Code:// Digispark Mini, ATtiny85, USB // Test 1 - Feste Zeiten mit Delay void setup() { pinMode(0, INPUT); pinMode(1, OUTPUT); } void loop() { int trigger = digitalRead(0); if (trigger <> 0) { digitalWrite(1, HIGH); delay(1000); //1 Sekunde an digitalWrite(1, LOW); delay(10000); //10 Sekunden aus digitalWrite(1, HIGH); delay(1000); //1 Sekunde an digitalWrite(1, LOW); } }
Ob währenddessen ein zweiter Trigger kommt, der den Zyklus verlängern soll, wird nicht registriert.
Bei Retriggerbarkeit, wird der erste 1 Sekunden Puls erzeugt, wenn während oder nach dem Impuls ein neuer Trigger kommt wird die Zeit für das Monoflop zurückgesetzt und die Gesammtzeit ist dann die schon verstrichene Zeit plus die Zeit auf die der Timer eingestellt ist. Wie bei einem Treppenhauslicht kann man damit die Zeit bis zum zweiten 1 Sekunden Puls beliebig verlängern, wenn mann innerhalb der Zeit immer wieder neu triggert.
Es kommt halt auf die exakte Aufgabenstellung an, was man benötigt.






Zitieren

Lesezeichen