Besoin d'aide condition+capteurs+compteur

Bonjour à tous,
je cherche a créer le programme suivant:
-2 capteur et 3 leds
la led 3 est toujours allumées
quand le capteur 1 est activé pendant un minimum de 2secondes et le capteur 2 non activé, les leds 1 et 3 s’allument pendant 3 secondes
et quand les 2 capteurs sont activés pendant un minimum toujours de 2 secondes, les leds 2 et 3 s’allument pendant 3 secondes.

Sans les 2 secondes, j’ai créé ce programme, sauf que la led 3 reste allumée tout le temps (ça c’est normal), mais les leds 2 et 3 clignote 3 secondes, chacune leur tour, et les capteurs n’agissent en rien dans le système.

const int capteur1 = 20; 
const int capteur2 = 21; 
const int led1 = 23; 
const int led2 = 24; 
const int led3 = 25; 

int etatcapteur1; 
int etatcapteur2; 
void setup () {
 
  pinMode (capteur1, INPUT);
  pinMode (capteur2, INPUT);
  pinMode (led1, OUTPUT);
  pinMode (led2, OUTPUT);
  pinMode (led3, OUTPUT);
  etatcapteur1 = LOW;
  etatcapteur2 = LOW;
  
}

void loop () {
  digitalWrite (led3, HIGH);  
  digitalWrite (led2, LOW);
  digitalWrite (led1, LOW);
  
  etatcapteur1 = digitalRead(capteur1);
  etatcapteur2 = digitalRead(capteur2);
    if(etatcapteur1 == HIGH) {
      digitalWrite (led1, HIGH);
      digitalWrite (led2, LOW);
      digitalWrite (led3, HIGH);
      delay(3000);
      digitalWrite (led1, LOW);
    }
      if(etatcapteur2 == HIGH) {
      digitalWrite (led3, HIGH);
      digitalWrite (led2, HIGH);
      delay(3000);
        digitalWrite (led3, LOW);
      digitalWrite (led2, LOW);
    }
    else {
      digitalWrite (led3, HIGH);   
  } 
}

et en rajoutant les 2 secondes, ça donne ça: mais toujours rien ne se passe

const int capteur1 = 20; 
const int capteur2 = 21; 

const int led1 = 23; 
const int led2 = 24; 
const int led3 = 25; 

long tempsdetec = 2000;
boolean variable = false;
boolean etatcapteur1; 
boolean etatcapteur2; 
unsigned long debutactif;

void setup () {
  
  pinMode (capteur1, INPUT);
  pinMode (capteur2, INPUT);
  pinMode (led1, OUTPUT);
  pinMode (led2, OUTPUT);
  pinMode (led3, OUTPUT);
  
}

void loop () {
  
  etatcapteur1 = digitalRead(capteur1);
  
  digitalWrite (led3, HIGH);  //indication que la machine est en marche
  digitalWrite (led2, LOW);
  digitalWrite (led1, LOW);
  
  if(etatcapteur1==HIGH) {
    debutactif = millis();
    variable = true;
  }
  etatcapteur1 = digitalRead(capteur1);
  etatcapteur2 = digitalRead(capteur2);
  
  if((variable == true) && (etatcapteur2 == HIGH)) {
   
    if((millis() >= tempsdetec) && (etatcapteur2 == LOW)) {
      digitalWrite (led1, HIGH);
      digitalWrite (led2, LOW);
      digitalWrite (led3, HIGH);
      delay(3000);
     
      digitalWrite (led1, LOW);
      
 
    }
    if((millis() >= tempsdetec)  && (etatcapteur2 == LOW)) {
      digitalWrite (led2, HIGH);
       digitalWrite (led3, HIGH);
      delay(3000);
      digitalWrite (led2, LOW);
      
    }
   
    
  }
}

Si quelqu’un pourrait m’aider pour trouver les erreurs (je suis débutant)
Merci d’avance, bonne soirée!

Pas de chance tu commence mal. As tu ouvert quelques sujets du sous forum où tu as posté ta question ? Sans doute non car tu aurais compris que l'endroit est réservé pour les tuto et les cours.

Quand on ne connait pas un forum on ne prend pas le premier endroit qui se présente, on commence par le parcourir.

En attendant une question posée dans tuto ne trouvera pas de réponse --> tu envoi un message au modérateur pour qu'il déplace le message dans le forum général et là il y aura sans doute quelqu'un qui te proposera une solution.