const int relay1Pin = 2;
const int relay2Pin = 3;
const int relay3Pin = 4;
const int relay4Pin = 5;
const int relay5Pin = 6;
const int relay6Pin = 7;
const int separateRelayPin = 8;
const int keyPin = 9;
unsigned long currentTime;
unsigned long relay1StartTime;
unsigned long relay2StartTime;
unsigned long relay3StartTime;
unsigned long relay4StartTime;
unsigned long relay5StartTime;
unsigned long relay6StartTime;
unsigned long separateRelayStartTime;
bool separateRelayActive = false;
void setup() {
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(relay4Pin, OUTPUT);
pinMode(relay5Pin, OUTPUT);
pinMode(relay6Pin, OUTPUT);
pinMode(separateRelayPin, OUTPUT);
pinMode(keyPin, INPUT);
}
void loop() {
currentTime = millis();
// سیکل ۳ دورهای
if (currentTime - relay1StartTime >= 3000) {
digitalWrite(relay1Pin, HIGH);
}
if (currentTime - relay2StartTime >= 2000) {
digitalWrite(relay2Pin, HIGH);
}
if (currentTime - relay3StartTime >= 5000) {
digitalWrite(relay3Pin, HIGH);
}
if (currentTime - relay4StartTime >= 2000) {
digitalWrite(relay4Pin, HIGH);
}
if (currentTime - relay5StartTime >= 4000) {
digitalWrite(relay5Pin, HIGH);
}
if (currentTime - relay6StartTime >= 2000) {
digitalWrite(relay6Pin, HIGH);
}
// سیکل ۲ دورهای تک رله مجزا
if (separateRelayActive) {
if (currentTime - separateRelayStartTime >= 3000) {
digitalWrite(separateRelayPin, HIGH);
}
}
// بررسی فشار دادن کلید
if (digitalRead(keyPin) == HIGH) {
// متوقف کردن سیکلها
digitalWrite(relay1Pin, LOW);
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
digitalWrite(relay4Pin, LOW);
digitalWrite(relay5Pin, LOW);
digitalWrite(relay6Pin, LOW);
digitalWrite(separateRelayPin, LOW);
} else {
// شروع سیکلها
if (currentTime >= 9000) {
relay1StartTime = currentTime;
relay2StartTime = currentTime;
relay3StartTime = currentTime;
relay4StartTime = currentTime;
relay5StartTime = currentTime;
relay6StartTime = currentTime;
}
if (currentTime >= 18000) {
separateRelayStartTime = currentTime;
separateRelayActive = true;
}
}
}