Help .... Commande de 3 relais

Bonjour @koko11073

Voici une idée de code, peut être pas la plus simple, ni la plus propre, mais je pense que ça fonctionne, a tester, car je n'ai pas de matériel, ce matin sous la main.


unsigned long tempo_R2;
int valeur_tempo_R2 = 30000;
byte status_R2 = false;
void setup()
{
  // sortie commande relais R1 en bn13
  pinMode(13, OUTPUT);
  pinMode(6, OUTPUT); //relais 2
  // entrées venant des opto en bn2-4-5-9-10-11-12
  pinMode(2, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
  pinMode(11, INPUT);
  pinMode(12, INPUT);
}

void loop()
{
  // conditions pour commande relais
  if ((digitalRead( 2) && digitalRead(4) && digitalRead(5) && digitalRead(9) && digitalRead(10) &&
       digitalRead(11) && digitalRead(12) ))
  {
    // actions commande relais
    digitalWrite(13, HIGH );
    if (!status_R2){
      tempo_R2 = millis();
      status_R2 = true;
    }
    if (tempo_R2 + valeur_tempo_R2  < millis()){
      digitalWrite(6,HIGH);
    }
    
  }
  else
  {
    digitalWrite(13, LOW );
    digitalWrite(6,LOW);
    status_R2 = false;
  }
}

BAT