/*
Reihenfolge soll aber sein:
4 Fußspuren,
Tür öffnet,
Sekunde Verzögerung,
Tür zu,
Innenraumbeleuchtung geht an.
https://forum.arduino.cc/t/anfanger-servo-soll-erst-nach-led-bewegung-ausfuhren/1322781/5
*/
#include <Servo.h>
constexpr uint8_t servoPin = 9;
Servo servo;
constexpr uint8_t footstepPins[] = {2, 3, 4, 5}; // Pins für Fußspuren
constexpr uint8_t indoorLightPin = 6; // Pin für Innenraumbeleuchtung
constexpr uint8_t doorLightPin = 7; // Pin für Außenbeleuchtung
void setup() {
Serial.begin(115200);
// Pins für Fußspuren und Beleuchtung als Ausgang setzen
for (int i = 0; i < 4; i++) {
pinMode(footstepPins[i], OUTPUT);
digitalWrite(footstepPins[i], LOW);
}
pinMode(indoorLightPin, OUTPUT);
pinMode(doorLightPin, OUTPUT);
digitalWrite(indoorLightPin, LOW);
digitalWrite(doorLightPin, LOW);
// Servo initialisieren
servo.attach(servoPin);
servo.write(0); // Startposition: Tür geschlossen
}
void loop() {
// Schritt 1:
Serial.println(F("Es beginnt mit vier Fußspuren. Jeder leuchtet einzeln auf"));
for (int i = 0; i < 4; i++) {
digitalWrite(footstepPins[i], HIGH);
delay(1000); // 1 Sekunde warten
digitalWrite(footstepPins[i], LOW);
}
//Schritt 2 a
Serial.println(F("Tür geht auf"));
servo.write(45); // Tür auf Position 45 Grad öffnen
delay(1000); // 1 Sekunde warten
//Schritt 2 b
Serial.println(F("Tür geht zu."));
servo.write(0); // Tür auf Position 0 Grad schließen
delay(1000); // 1 Sekunde warten
// Schritt 3:
Serial.println(F("Innenraum Lampe geht an. Bleibt an."));
digitalWrite(indoorLightPin, HIGH);
// Schritt 4:
Serial.println(F("Außenbeleuchtung geht an. Bleibt an."));
digitalWrite(doorLightPin, HIGH);
// Schritt 5:
Serial.println(F("3 und 4 sollen für 5 Minuten leuchten."));
delay(1 * 60 * 1000UL); // testweise reduziert auf 1 min ... rechne in unsigned long!
// Schritt 6
Serial.println(F("vorbereiten für Neustart"));
digitalWrite(indoorLightPin, LOW);
digitalWrite(doorLightPin, LOW);
delay(1000);
}
//