#define BUTTON_1 2
#define BUTTON_2 3
#define BUTTON_3 4
#define BUTTON_4 5
#define BUTTON_5 13
#define BUTTON_6 7
#define BUTTON_7 22
#define RELAY_1 8
#define RELAY_2 9
#define RELAY_3 10
#define RELAY_4 11
#define RELAY_5 12
#define RELAY_6 6
#define RELAY_7 23
unsigned long lastActionTime = 0;
const unsigned long timeout = 120000;
void setup() {
pinMode(BUTTON_1, INPUT_PULLUP);
pinMode(BUTTON_2, INPUT_PULLUP);
pinMode(BUTTON_3, INPUT_PULLUP);
pinMode(BUTTON_4, INPUT_PULLUP);
pinMode(BUTTON_5, INPUT_PULLUP);
pinMode(BUTTON_6, INPUT_PULLUP);
pinMode(BUTTON_7, INPUT_PULLUP);
pinMode(RELAY_1, OUTPUT);
pinMode(RELAY_2, OUTPUT);
pinMode(RELAY_3, OUTPUT);
pinMode(RELAY_4, OUTPUT);
pinMode(RELAY_5, OUTPUT);
pinMode(RELAY_6, OUTPUT);
pinMode(RELAY_7, OUTPUT);
digitalWrite(RELAY_1, LOW);
digitalWrite(RELAY_2, LOW);
digitalWrite(RELAY_3, LOW);
digitalWrite(RELAY_4, LOW);
digitalWrite(RELAY_5, LOW);
digitalWrite(RELAY_6, LOW);
digitalWrite(RELAY_7, LOW);
}
void loop() {
// Read buttons (active LOW)
bool button1State = !digitalRead(BUTTON_1);
bool button2State = !digitalRead(BUTTON_2);
bool button3State = !digitalRead(BUTTON_3);
bool button4State = !digitalRead(BUTTON_4);
bool button5State = !digitalRead(BUTTON_5);
bool button6State = !digitalRead(BUTTON_6);
bool button7State = !digitalRead(BUTTON_7);
if (button1State) {
activateRelay(1);
} else if (button2State) {
activateRelay(2);
} else if (button3State) {
activateRelay(3);
} else if (button4State) {
activateRelay(4);
} else if (button5State) {
activateRelay(5);
} else if (button6State) {
activateRelay(0);
} else if (button7State) {
activateRelay(7); // <-- New
}
if (millis() - lastActionTime > timeout) {
activateRelay(0); // All ON
}
}
void activateRelay(int relayNumber) {
digitalWrite(RELAY_1, HIGH);
digitalWrite(RELAY_2, HIGH);
digitalWrite(RELAY_3, HIGH);
digitalWrite(RELAY_4, HIGH);
digitalWrite(RELAY_5, HIGH);
digitalWrite(RELAY_6, HIGH);
digitalWrite(RELAY_7, HIGH);
if (relayNumber == 1) {
digitalWrite(RELAY_1, LOW);
} else if (relayNumber == 2) {
digitalWrite(RELAY_2, LOW);
} else if (relayNumber == 3) {
digitalWrite(RELAY_3, LOW);
} else if (relayNumber == 4) {
digitalWrite(RELAY_4, LOW);
} else if (relayNumber == 5) {
digitalWrite(RELAY_5, LOW);
} else if (relayNumber == 7) {
digitalWrite(RELAY_7, LOW);
} else if (relayNumber == 0) {
digitalWrite(RELAY_1, LOW);
digitalWrite(RELAY_2, LOW);
digitalWrite(RELAY_3, LOW);
digitalWrite(RELAY_4, LOW);
digitalWrite(RELAY_5, LOW);
digitalWrite(RELAY_6, LOW);
digitalWrite(RELAY_7, LOW);
}
lastActionTime = millis();
}programming