// -----Setup Start-----
const int vibPin = 3;
unsigned long currentMillis = 0;
long interval = 18000000;
const int btnPin = 4;
unsigned long previousMillis = 0;
void setup() {
pinMode(vibPin, OUTPUT);
pinMode(btnPin, INPUT);
}
// -----Setup Ende-----
void loop() {
if(previousMillis == 0){ // Falls Knopf noch nicht gedrückt wurde, ausführen
if(digitalRead(btnPin) == HIGH){
previousMillis = millis(); // Zeit für Knopfdruck merken
delay(2000); // 2 Sekunden warten um Komplikationen zu vermeiden
}
}
currentMillis = millis(); // Aktuelle Zeit merken
if (currentMillis - previousMillis >= interval) { // Aktuelle Zeit - Knopfdruckzeit = größer als 5 Stunden (bzw. Timerlänge)?
digitalWrite(vibPin, HIGH); // Vibrationsalarm Start
delay(1000);
digitalWrite(vibPin, LOW);
delay(1000);
digitalWrite(vibPin, HIGH);
delay(1000);
digitalWrite(vibPin, LOW);
delay(1000);
digitalWrite(vibPin, HIGH);
delay(1000);
digitalWrite(vibPin, LOW);
delay(1000); // Vibrationsalarm Ende
}
if(digitalRead(btnPin) == HIGH){
interval = interval + 600000; // Verlängere Timer um 10 Minuten
delay(1000); // 1 Sekunde warten um Koplikationen zu vermeiden
digitalWrite(btnPin, HIGH); // Kurze Vibration zur Bestätigung
delay(100);
digitalWrite(btnPin, LOW);
}
}
Das sollte eigentlich soweit funktionieren, wenn du ne fehlermeldung bekommst dann poste die einfach und ich schaue was falsch ist

Den Knopf musst du an den arduino anschließen
EDIT: Den Button mit dem du den Timer startest (an Pin 4) nutzt du auch zum verlängern