int relayPin1 = 4;
int relayPin2 = 5;
int relayPin3 = 6;
int relayPin4 = 7;
int functieActivata1 = 0;
int functieActivata2 = 0;
int functieActivata3 = 0;
int functieActivata4 = 0;
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
unsigned long previousMillis4 = 0;
const long interval1 = 333; // Interval de 333 milisecunde pentru primul releu
const long interval2 = 3000; // Interval de 5 minute (300000 milisecunde) pentru al doilea releu
const long interval3 = 500; //
const long interval4 = 700; //

void setup() {
  Serial.begin(9600);
 pinMode(relayPin1, OUTPUT);
  pinMode(relayPin2, OUTPUT);
  pinMode(relayPin3, OUTPUT);
  pinMode(relayPin4, OUTPUT);
  
  digitalWrite(relayPin1, LOW);
  digitalWrite(relayPin2, LOW);
  digitalWrite(relayPin3, LOW);
  digitalWrite(relayPin4, LOW);
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read();
    
    if (command == '1') {
      // Porneste functia pentru primul releu
      functieActivata1 = 1;
      Serial.println("Releu 1 pornit");
    } else if (command == '2') {
      // Opreste functia pentru primul releu
      functieActivata1 = 0;
      digitalWrite(relayPin1, LOW);
      Serial.println("Releu 1 oprit");
    } else if (command == '3') {
      // Porneste functia pentru al doilea releu
      functieActivata2 = 1;
      Serial.println("Releu 2 pornit");
    } else if (command == '4') {
      // Opreste functia pentru al doilea releu
      functieActivata2 = 0;
      digitalWrite(relayPin2, LOW);
      Serial.println("Releu 2 oprit");
    } else if (command == '5'){
      functieActivata3 = 1;
      Serial.println("Releu 3 pornit");
    } else if (command == '6') {
      functieActivata3 = 0;
      digitalWrite(relayPin3, LOW);
      Serial.println("Releu 3 oprit");
    } else if (command == '7') {
      functieActivata4 = 1;
      Serial.println("Releu 4 pornit");
    } else if (command == '8') {
      functieActivata4 = 0;
      digitalWrite(relayPin4, LOW);
      Serial.println("Releu 4 oprit");
    }
  }
  
  if (functieActivata1 == 1) {
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis1 >= interval1) {
      // Aici poți adăuga codul pentru primul releu
      digitalWrite(relayPin1, !digitalRead(relayPin1)); // Inverteaza starea pinului
      previousMillis1 = currentMillis;
    }
  }

  if (functieActivata2 == 1) {
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis2 >= interval2) {
      // Aici poți adăuga codul pentru al doilea releu
      digitalWrite(relayPin2, !digitalRead(relayPin2)); // Inverteaza starea pinului
      previousMillis2 = currentMillis;
    }
  }

  if (functieActivata3 == 1) {
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis3 >= interval3) {
      // Aici poți adăuga codul pentru primul releu
      digitalWrite(relayPin3, !digitalRead(relayPin3)); // Inverteaza starea pinului
      previousMillis3 = currentMillis;
    }
  }

  if (functieActivata4 == 1) {
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis4 >= interval4) {
      // Aici poți adăuga codul pentru primul releu
      digitalWrite(relayPin4, !digitalRead(relayPin4)); // Inverteaza starea pinului
      previousMillis4 = currentMillis;
    }
  }
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
NOCOMNCVCCGNDINLED1PWRRelay Module
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO
NOCOMNCVCCGNDINLED1PWRRelay Module
relay2:VCC
relay2:GND
relay2:IN
relay2:NC
relay2:COM
relay2:NO
NOCOMNCVCCGNDINLED1PWRRelay Module
relay3:VCC
relay3:GND
relay3:IN
relay3:NC
relay3:COM
relay3:NO
NOCOMNCVCCGNDINLED1PWRRelay Module
relay4:VCC
relay4:GND
relay4:IN
relay4:NC
relay4:COM
relay4:NO