unsigned long lastDebounceTime1 = 0;
unsigned long lastDebounceTime2 = 0;
unsigned long lastDebounceTime3 = 0;
unsigned long lastDebounceTime4 = 0;
unsigned long debounceDelay = 50;
int slideSwitchState = HIGH; // Annahme, Slide-Switch im Ausgangszustand "Freigabe"
int lastSlideSwitchState = HIGH;
void setup() {
pinMode(2, INPUT_PULLUP); // Schalter für Ansteuerung Relais K1 (Licht Zimmer)
pinMode(3, INPUT_PULLUP); // Schalter für Ansteuerung Relais K2 (Licht Bett)
pinMode(4, INPUT_PULLUP); // Schalter für Ansteuerung Relais K3 (Garagentor)
pinMode(5, INPUT_PULLUP); // Schalter für Ansteuerung Relais K4 (Licht Badezimmer)
pinMode(6, INPUT_PULLUP); // Slide-Switch
pinMode(8, INPUT_PULLUP); // Slide-Switch LED
pinMode(9, INPUT_PULLUP); // Slide-Switch LED
pinMode(46, OUTPUT); // Relais K1 (Licht Zimmer)
pinMode(47, OUTPUT); // Relais K2 (Licht Bett)
pinMode(48, OUTPUT); // Relais K3 (Garagentor)
pinMode(49, OUTPUT); // Relais K4 (Licht Badezimmer)
//Res
//Res
//Res
//Res
//Res
pinMode(50, OUTPUT); //LED R
pinMode(52, OUTPUT); //LED G
pinMode(53, OUTPUT); //LED B
}
int K1lastState = HIGH;
int K1State = LOW; // Starte mit ausgeschaltetem Relais
int K2lastState = HIGH;
int K2State = LOW; // Starte mit ausgeschaltetem Relais
int K3lastState = HIGH;
int K3State = LOW; // Starte mit ausgeschaltetem Relais
int K4lastState = HIGH;
int K4State = LOW; // Starte mit ausgeschaltetem Relais
int RState = LOW; //Starte mit Roter LED aus
int GState = LOW; //Starte mit Grüner LED aus
int BState = LOW; //Starte mit Blauer LED aus
void loop() {
int slideSwitchState = digitalRead(6);
if (slideSwitchState != lastSlideSwitchState) {
if (slideSwitchState == LOW) { // Slide-Switch im Zustand "Alles aus"
if (K1State == HIGH){
K1State = !K1State;
digitalWrite(46, K1State);
}
if (K2State == HIGH){
K2State = !K2State;
digitalWrite(47, K2State);
}
if (K3State == HIGH){
K3State = !K3State;
digitalWrite(48, K1State);
}
if (K4State == HIGH){
K4State = !K4State;
digitalWrite(49, K4State);
}
}
}
if (slideSwitchState == HIGH) { // Slide-Switch im Zustand "Freigabe"
// Verarbeite die Schalterzustände, um die Relais entsprechend zu steuern
int K1currentState = digitalRead(2);
if (K1currentState != K1lastState && millis() - lastDebounceTime1 > debounceDelay) {
lastDebounceTime1 = millis();
if (K1currentState == LOW && K1lastState == HIGH) {
K1State = !K1State;
digitalWrite(46, K1State);
}
}
K1lastState = K1currentState;
int K2currentState = digitalRead(3);
if (K2currentState != K2lastState && millis() - lastDebounceTime2 > debounceDelay) {
lastDebounceTime2 = millis();
if (K2currentState == LOW && K2lastState == HIGH) {
K2State = !K2State;
digitalWrite(47, K2State);
}
}
K2lastState = K2currentState;
int K3currentState = digitalRead(4);
if (K3currentState != K3lastState && millis() - lastDebounceTime3 > debounceDelay) {
lastDebounceTime3 = millis();
if (K3currentState == LOW && K3lastState == HIGH) {
K3State = !K3State;
digitalWrite(48, K3State);
}
}
K3lastState = K3currentState;
int K4currentState = digitalRead(5);
if (K4currentState != K4lastState && millis() - lastDebounceTime4 > debounceDelay) {
lastDebounceTime4 = millis();
if (K4currentState == LOW && K4lastState == HIGH) {
K4State = !K4State;
digitalWrite(49, K4State);
}
}
K4lastState = K4currentState;
}
lastSlideSwitchState = slideSwitchState;
int LEDSwitch1 = digitalRead(8);
int LEDSwitch2 = digitalRead(9);
if (LEDSwitch1 == LOW && LEDSwitch2 == LOW)
{
digitalWrite(50, HIGH);
} else {
digitalWrite(50, LOW);
}
if (LEDSwitch1 == LOW && LEDSwitch2 == HIGH){
digitalWrite(52, HIGH);
} else {
digitalWrite(52, LOW);
}
if (LEDSwitch1 == HIGH && LEDSwitch2 == LOW){
digitalWrite(53, HIGH);
} else {
digitalWrite(53, LOW);
}
}