#include <Arduino.h>
const int relayPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
const int switchPins[] = {A0, A1, A2, A3, A4, A5};
const int modeButtonPin = 12;
const int offButtonPin = 13;
const int numRelays = 10;
const int numSwitches = 6;
int mode = 0;
void setup() {
for (int i = 0; i < numRelays; i++) {
pinMode(relayPins[i], OUTPUT);
}
for (int i = 0; i < numSwitches; i++) {
pinMode(switchPins[i], INPUT_PULLUP);
}
pinMode(modeButtonPin, INPUT_PULLUP);
pinMode(offButtonPin, INPUT_PULLUP);
}
void loop() {
if (digitalRead(modeButtonPin) == LOW) {
mode++;
if (mode > 4) {
mode = 1;
}
}
if (digitalRead(offButtonPin) == LOW) {
mode = 0;
for (int i = 0; i < numRelays; i++) {
digitalWrite(relayPins[i], LOW);
}
delay(100); // Memberikan sedikit delay untuk memastikan tombol off tidak diproses lebih lanjut
while (digitalRead(offButtonPin) == LOW) {} // Menunggu hingga tombol off dilepas
}
switch (mode) {
case 1:
for (int i = 0; i < numRelays; i++) {
digitalWrite(relayPins[i], HIGH);
}
break;
case 2:
for (int i = 6; i < numRelays; i++) {
digitalWrite(relayPins[i], HIGH);
}
for (int i = 0; i < 2; i++) {
digitalWrite(relayPins[i], LOW);
}
break;
case 3:
for (int i = 0; i < numRelays; i++) {
digitalWrite(relayPins[i], HIGH);
delay(500);
digitalWrite(relayPins[i], LOW);
}
break;
case 4:
for (int i = 0; i < numRelays; i++) {
digitalWrite(relayPins[i], HIGH);
delay(random(100, 1000));
digitalWrite(relayPins[i], LOW);
}
break;
default:
break;
}
}