Problème temporisation

Bonjour, je commence tout juste la programmation sur arduino et j’ai déjà un petit soucis concernant la temporisation.
En gros il s’agit de pouvoir ouvrir une porte (gâche électrique) avec un poids déterminé sur une balance.
En attendant de connecter une balance, j’ai remplacé cette dernière par un potentiomètre qui la simule.
Je souhaite que ma porte s’ouvre lorsque la balance (ici le potentiomètre) affiche une valeur comprise entre 400 et 600 pendant 2 secondes.
J’ai donc voulu faire une première boucle SI qui teste si la valeur du potentiomètre est entre 400 et 600 et si c’était vrai, mettre une tempo de deux secondes et revérifier si la valeur est toujours comprise entre 400 et 600.
J’ai remis plus bas le code que j’ai préparé mais le problème avec ce dernier c’est que, dès que la valeur du potentiomètre arrive entre 400 et 600, il y a bien une tempo de deux secondes mais la valeur reste figée pendant ce temps et le deuxième test est forcément vrai, du coup la porte s’ouvre même si le potentiomètre affiche "réellement une autre valeur).

Merci d’avance pour votre retour.

int portePin = 7;

void setup()
{
pinMode(portePin, OUTPUT);
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
delay(1); // delay in between reads for stability
if(sensorValue > 400 && sensorValue < 600)
{
delay(2000);
if(sensorValue > 400 && sensorValue < 600)
{
digitalWrite(portePin, HIGH);
digitalWrite(portePin, HIGH);
delay(5000);
digitalWrite(portePin, LOW);
}
}
if(sensorValue < 400 || sensorValue > 600)
{
digitalWrite(portePin, LOW);
}
}

Bonjour, il faut faire une nouvelle lecture de "sensorValue" juste avant le 2eme test. Bon courage Jacques

ah ouai pas bête ! pas malin...

Merci !