Hallo Leute,
Ich will auf einem Arduino folgende Aktion ausführen:
Wenn ein Ereigniss ausgelöst wird z.bsp. Taster o.ä., soll
ein Ausgang für eine eisntellbare Zeit gesetzt werden.
Leider habe ich gerade keinen Arduino mehr (falsche Spannung am falschen
Pin :-O )
und kann daher nicht herumexperimentieren.
Wird das funktionieren?
Deklarationen:
1 | const word ImpulseTime = 500; //Impulszeit in Millisekunden
|
2 | int AUSGANG_pin = 5;
|
3 | unsigned long PreviousMillis = 0;
|
In der loop:
1 | if ("Ereigniss" and !digitalRead(AUSGANG_pin)){
|
2 | // Starte Impulszeit. Nicht Ausgangpin soll garantieren, das der Impuls beim ersten Ereigniss auslöst.
|
3 | digitalWrite(AUSGANG_pin, HIGH);
|
4 | PreviousMillis = millis();
|
5 | }
|
6 |
|
7 | if (millis() - PreviousMillis >= ImpulseTime){ // Zeit für Impuls abgelaufen
|
8 | digitalWrite(AUSGANG_pin, LOW);
|
9 | }
|
Ich habe Angst, das das Zurücksetzen beim Überlauf von millis() noch
einmal gesetzt wird.