Comment faire tourner un servomoteur avec une condition

Bonjour , pour mon projet je cherche a faire en sorte que mon moteur tourne d’un certain nombre de degrés lorsque la valeur retournée par le capteur se situe entre un intervalle donnée . Malheureusement le moteur ne tourne pas. Je vous met le code , j’espère que vous pourrez m’aider merci d’avance ^^

#define echoPin 6 // Broche Echo
#define trigPin 7 // Broche Trigger

int maximumRange = 200; // La portée maximale 
int minimumRange = 0; // Portée minimale 
float duree, distance; // Durée utilisée pour calculer la distance


/* Inclut la lib Servo pour manipuler le servomoteur */
#include <Servo.h>
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


#include <Servo.h>

/* Créer un objet Servo pour contrôler le servomoteur */
Servo myservo;




int d = 0;
int u =0;
int di= 0;
int v= 0;
int deux = 2;
int un = 1;
float dix = 0.10;
float vingt = 0.20;
float t = 0;

void setup() {


 myservo.attach(9);

  
  // put your setup code here, to run once:
Serial.begin (9600);
 pinMode (trigPin, OUTPUT);
 pinMode (echoPin, INPUT);


// set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Argent contenu");


    Serial.begin(9600);




int d;
int u;
int di;
int v;

int deux;
int un;
float  dix;
float vingt;
float t;
}

void loop() {

myservo.write(30);
  
  // put your main code here, to run repeatedly:
// * Le cycle trigPin / echoPin suivante est utilisé pour déterminer la
// distance de l'objet le plus proche en faisant rebondir les ondes sonores hors de lui. * //
 digitalWrite (trigPin, LOW); 
 delay (500); 

 digitalWrite (trigPin, HIGH);
 delay (500);
 delay (15000);
 digitalWrite (trigPin, LOW);
 duree = pulseIn (echoPin, HIGH);
 
 // Calcule la distance (en cm) par rapport à la vitesse du son.
 distance = duree / 58,2;
 
 if (distance >= maximumRange || distance <= minimumRange) 
  {
   Serial.println ( "hors de portee"); 
  } 
 else
  { // Envoyer la distance à l'ordinateur via le moniteur série 
   Serial.println (distance); 
  } 
 // retard 50ms avant la prochaine lecture retard (50);






 




 



  if ( (distance>2.00) && (distance<3.00))
  {
     d = d+1;
  
    
     myservo.write(100);
    
     
  }









t = di*dix + v*vingt + d*deux + u*un ;






lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.clear();
  lcd.begin(16, 2);
  lcd.print("Argent contenu");
  lcd.setCursor(0,1);
  lcd.print( t );
  lcd.setCursor( 3,1);
  lcd.print("euros");

}

Bonjour , je cherche a savoir comment faire tourner mon servo moteur seulement si la condition pour qu’il tourne soit effectuée , le problème est que : lorsqu’il est dans une boucle if , le servo ne tourne pas .

#define echoPin 6 // Broche Echo
#define trigPin 7 // Broche Trigger

int maximumRange = 200; // La portée maximale 
int minimumRange = 0; // Portée minimale 
float duree, distance; // Durée utilisée pour calculer la distance


/* Inclut la lib Servo pour manipuler le servomoteur */
#include <Servo.h>
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


#include <Servo.h>

/* Créer un objet Servo pour contrôler le servomoteur */
Servo myservo;




int d = 0;
int u =0;
int di= 0;
int v= 0;
int deux = 2;
int un = 1;
float dix = 0.10;
float vingt = 0.20;
float t = 0;

void setup() {


 myservo.attach(9);

  
  // put your setup code here, to run once:
Serial.begin (9600);
 pinMode (trigPin, OUTPUT);
 pinMode (echoPin, INPUT);


// set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Argent contenu");


    Serial.begin(9600);




int d;
int u;
int di;
int v;

int deux;
int un;
float  dix;
float vingt;
float t;
}

void loop() {

myservo.write(30);
  
  // put your main code here, to run repeatedly:
// * Le cycle trigPin / echoPin suivante est utilisé pour déterminer la
// distance de l'objet le plus proche en faisant rebondir les ondes sonores hors de lui. * //
 digitalWrite (trigPin, LOW); 
 delay (500); 

 digitalWrite (trigPin, HIGH);
 delay (500);
 delay (15000);
 digitalWrite (trigPin, LOW);
 duree = pulseIn (echoPin, HIGH);
 
 // Calcule la distance (en cm) par rapport à la vitesse du son.
 distance = duree / 58,2;
 
 if (distance >= maximumRange || distance <= minimumRange) 
  {
   Serial.println ( "hors de portee"); 
  } 
 else
  { // Envoyer la distance à l'ordinateur via le moniteur série 
   Serial.println (distance); 
  } 
 // retard 50ms avant la prochaine lecture retard (50);





if ( (distance>4.30) && (distance<5.20))
  {
di = di+1;
  
    delay(400);
     myservo.write(80);
    delay(30);
    
    
  }



if ( (distance>3.45) && (distance<4.20))
  {
v = v+1;
  
    
    delay(400);
    myservo.write(80);
    delay(30);

   
  }




if ( (distance>3.05) && (distance<3.40))
  {
u = u+1;
  
    
    delay(400);
     myservo.write(80);
    delay(30);
     
  }
 



  if ( (distance>2.00) && (distance<3.00))
  {
d = d+1;
  
    
    delay(400);
     myservo.write(80);
    delay(30);
     
  }









t = di*dix + v*vingt + d*deux + u*un ;






lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.clear();
  lcd.begin(16, 2);
  lcd.print("Argent contenu");
  lcd.setCursor(0,1);
  lcd.print( t );
  lcd.setCursor( 3,1);
  lcd.print("euros");

}