Taster nach dem Auslösen für eine bestimmte Zeit sperren?
Hallo, bin Anfänger,
ich benötige eine Programmierung, bei der ein Taster egal, wie oft er hintereinander gedrückt wird, nur einmal auslöst. Also eine Sperre für ca. 1min hat.
(mir geht es um die Verwendung eines Arduino)
1 Antwort
![](https://images.gutefrage.net/media/user/daCypher/1444744777_nmmslarge.jpg?v=1444744777000)
Du kannst mit der Funktion millis() die Millisekunden seit dem Start des Arduino auslesen. Beim drücken der Taste kannst du dann nachschauen, ob schon genügend Millisekunden seit dem letzten Mal abgelaufen sind.
Ich hab grade keinen Arduino hier, um es zu testen, aber ungefähr so sollte es gehen:
int taster = 1;
int led = 2;
long disableTime = 60000; // Hier speichern wir, wie lange die Taste gesperrt bleiben soll. 60000ms = 60s = 1 Minute
long startMillis = -disableTime; // Hier speichern wir die Zeit seit der letzten Auslösung.
// -disableTime, damit man direkt nach dem Start des Arduino das erste mal auslösen darf
void setup() {
pinMode(taster, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
// Taste nur zulassen, wenn die Zeit abgelaufen ist
if (digitalRead(taste) == HIGH && millis() - startMillis > disableTime) {
startMillis = millis() // aktuelle Zeit speichern
// TODO: Hier kommt der Code hin, der bei Auslösung des Tasters ausgeführt werden soll
}
}