const int relayPins[] = {3, 4, 5, 6, 7, 8, 9, 10};
const int numRelays = sizeof(relayPins) / sizeof(relayPins[0]);
// Button pin
const int buttonPin = 34;
// Relay states (0 = off, 1 = on)
int relayStates[numRelays] = {0};
void setup() {
for (int i = 0; i < numRelays; i++) {
pinMode(relayPins[i], OUTPUT);
digitalWrite(relayPins[i], LOW); // Turn off all relays initially
}
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// Read button state
int buttonState = digitalRead(buttonPin);
// Mode 1: All relays sequentially
if (buttonState == LOW) {
for (int i = 0; i < numRelays; i++) {
digitalWrite(relayPins[i], HIGH); // Turn on relay
delay(1000); // Wait 1 second
digitalWrite(relayPins[i], LOW); // Turn off relay
delay(1000); // Wait 1 second
}
}
// Mode 2: Specific relay pairs
else {
digitalWrite(relayPins[0], HIGH); // Relay 1
digitalWrite(relayPins[4], HIGH); // Relay 5
delay(2000); // Wait 2 seconds
digitalWrite(relayPins[0], LOW);
digitalWrite(relayPins[4], LOW);
digitalWrite(relayPins[1], HIGH); // Relay 2
digitalWrite(relayPins[5], HIGH); // Relay 6
delay(2000);
digitalWrite(relayPins[1], LOW);
digitalWrite(relayPins[5], LOW);
digitalWrite(relayPins[2], HIGH); // Relay 3
digitalWrite(relayPins[6], HIGH); // Relay 7
delay(2000);
digitalWrite(relayPins[2], LOW);
digitalWrite(relayPins[6], LOW);
digitalWrite(relayPins[3], HIGH); // Relay 4
digitalWrite(relayPins[7], HIGH); // Relay 8
delay(2000);
digitalWrite(relayPins[3], LOW);
digitalWrite(relayPins[7], LOW);
}
}