#include <Servo.h>
Servo myservo;
unsigned long previousMillis = 0;
int posi[] = {90, 180, 90, 0};
int i = 0;
void setup() {
pinMode(8, INPUT_PULLUP);
pinMode(4, OUTPUT);
myservo.attach(3);
}
void loop() {
if (digitalRead(8) == 0) {
sequence();
}
}
void sequence() {
servo_move();
relay_ablauf();
}
void servo_move() {
int durchlauf = 0;
while (durchlauf < 2) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 1000) {
previousMillis = currentMillis;
myservo.write(posi[i]);
i++;
}
if (i == 4) {
i = 0;
durchlauf++;
}
}
return;
}
void relay_ablauf() {
digitalWrite(4, HIGH); // Relais einschalten
previousMillis = 0; // Zurücksetzen des Timers für das Relais
unsigned long startMillis = millis();
// Warten, bis 10 Sekunden vergangen sind
while (millis() - startMillis < 10000) {
// Nichts tun, nur warten, bis 10 Sekunden vergangen sind
}
digitalWrite(4, LOW); // Relais ausschalten nach 10 Sekunden
}