const int reedPins[] = {9, 10, 11, 12, 13, A1}; // Reed-Schalter an Pins 9-15
const int ledPins[] = {2, 3, 4, 5, 6, 7}; // LEDs an Pins 2-8
const int controlPin = A0; // Pin A0 wird HIGH, wenn alle Reed-Schalter geschlossen sind
void setup() {
// Setzt die Reed-Schalter-Pins als Input mit Pull-up-Widerständen
for (int i = 0; i < 6; i++) {
pinMode(reedPins[i], INPUT_PULLUP); // Aktiviert den internen Pull-up-Widerstand
}
// Setzt die LED-Pins als Output
for (int i = 0; i < 6; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // LED anfangs aus
}
// Setzt den controlPin als Output und initialisiert ihn mit LOW
pinMode(controlPin, OUTPUT);
digitalWrite(controlPin, LOW); // Anfangszustand für A0 ist LOW
}
void loop() {
bool allReedsClosed = true; // Variable, die überprüft, ob alle Reed-Schalter geschlossen sind
// Überprüft den Zustand jedes Reed-Schalters
for (int i = 0; i < 6; i++) {
if (digitalRead(reedPins[i]) == HIGH) { // Reed-Schalter ist geöffnet (Pin HIGH)
digitalWrite(ledPins[i], LOW); // Schaltet die LED aus
allReedsClosed = false; // Setzt allReedsClosed auf false
} else {
digitalWrite(ledPins[i], HIGH); // Reed-Schalter geschlossen, LED einschalten
}
}
// Wenn alle Reed-Schalter geschlossen sind, setze den controlPin auf HIGH
delay(2000);
if (allReedsClosed) {
digitalWrite(controlPin, HIGH); // Alle Reed-Schalter sind geschlossen, A0 wird HIGH
} else {
digitalWrite(controlPin, LOW); // Nicht alle Reed-Schalter sind geschlossen, A0 bleibt LOW
}
delay(100); // Kurze Verzögerung für stabile Eingänge
}