// Definirea pinilor pentru relee
const int relay1Pin = 2;
const int relay2Pin = 3;
const int relay3Pin = 4;
const int relay4Pin = 5;
const int LEDpin = 6;
// Variabile pentru temporizare
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
unsigned long previousMillis4 = 0;
long rememberTime=0;// this is used by the code
const long interval1 = 333; // Interval pentru pattern-ul "DI" (333 ms)
const long interval2 = 5000; // Interval pentru pattern-ul "Stop & Reverse" (5 minute)
const long interval3 = 10000; // Interval pentru pattern-ul "Fog" (10 minute)
const long onDuration = 1000;// OFF time for LED
const long offDuration = 500;// ON time for LED
int LEDState =HIGH;// initial state of LED
//long rememberTime=0;// this is used by the code
void setup() {
// Inițializarea pinilor pentru relee ca ieșiri
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(relay4Pin, OUTPUT);
digitalWrite(relay3Pin, HIGH);
digitalWrite(relay4Pin, HIGH);
}
void loop() {
unsigned long currentMillis = millis();
// Pattern-ul "Tail" - aprinde continuu
digitalWrite(relay1Pin, HIGH);
// Pattern-ul "DI" - clipire la fiecare 333 ms
if (currentMillis - previousMillis2 >= interval1) {
previousMillis2 = currentMillis;
digitalWrite(relay2Pin, !digitalRead(relay2Pin)); // Inversarea stării
}
// Pattern-ul "Stop & Reverse" - alternanță între 5 min On și 5 min Off
if (currentMillis - previousMillis3 >= interval2) {
previousMillis3 = currentMillis;
digitalWrite(relay3Pin, !digitalRead(relay3Pin)); // Inversarea stării
}
// Pattern-ul "Fog" - alternanță între 10 min On și 10 min Off
if (currentMillis - previousMillis4 >= interval3) {
previousMillis4 = currentMillis;
digitalWrite(relay4Pin, !digitalRead(relay4Pin)); // Inversarea stării
}
//Pattern
if( LEDState ==HIGH )
{
if( (millis()- rememberTime) >= onDuration){
LEDState = LOW;// change the state of LED
rememberTime=millis();// remember Current millis() time
}
}
else
{
if( (millis()- rememberTime) >= offDuration){
LEDState =HIGH;// change the state of LED
rememberTime=millis();// remember Current millis() time
}
}
digitalWrite(LEDpin,LEDState);// turn the LED ON or OFF
}