Hallo,
bin neu hier. Habe auch bisher kaum Programmierkenntnisse und hoffe auf Unterstützung.
Aufgabenstellung:
Ein Taster soll einen Ausgang meines Arduino Nano schalten, und nach 60 Sekunden wieder ausschalten.
Einfache Lösung:
int pinEingang = 3;
int pinAusgang = 13;
void setup() {
pinMode(pinEingang, INPUT_PULLUP);
pinMode(pinAusgang, OUTPUT);
}
void loop() {
int zustand = digitalRead(pinEingang);
if (zustand == HIGH) {
digitalWrite(pinAusgang, LOW); //Normalzustand - Ausgang AUS
} else {
digitalWrite(pinAusgang, HIGH);
delay(60000);
digitalWrite(pinAusgang, LOW);
}
}
Nun soll die Aufgabenstellung erweitert werden. Wenn innerhalb der 60 Sekunden der Taster erneut gedrückt wird, dann soll der Ausgang ebenfalls ausgeschaltet werden.
Dazu muss die Funktion "delay" ersetzt werden, da der Arduino sonst hier für 60 Minuten "einfriert" und es muss mittels einer weiteren If-Schleife der Tasterzustand abgefragt werden, während der Ausgang eingeschaltet ist.
Entweder Deine Beschreibung ist falsch oder Deine Schlussfolgerung.
Nun soll die Aufgabenstellung erweitert werden. Wenn innerhalb der 60 Sekunden der Taster erneut gedrückt wird, dann soll der Ausgang ebenfalls ausgeschaltet werden.
Da brauchst Du Deinen Sketch nicht zu ändern, der 2. Tastendruck wird, wie beschrieben, ignoriert.