Besoin d'aide pour programmation d'un servomoteur

Merci, cela m'a beaucoup aidée !
J'arrive à faire tourner mon moteur, pas encore exactement comme je voudrais, mais j'y suis presque :slight_smile:

Si vous avez encore la patience de m'aider un peu...
voilà mon programme:

#include <Servo.h>
Servo Servomoteur;

//Constantes

const int capteur=0; //Constante du capteur et numéro de sa broche analogique

//Variables
int valeur1 = 0 ;
int valeur2 = 0 ;
int valeur3 = 0 ;
int valeur4 = 0 ;
int valeurmax = 0 ;
int capteurPIN=0;

//Fonction Setup

void setup (){
  pinMode(capteurPIN, INPUT); //Attacher la pin __ à l'objet Servomoteur
  Servomoteur.attach(11); //Attacher le Servomoteur à la pin11, angle à 90°
  Servomoteur.write(0); //Remettre l'angle à 0°
  Serial.begin(9600);
  
}

//Fonction loop

void loop () {
  Servomoteur.write(0);
  
  valeur1=analogRead(capteur); //Relever la valeur1 du capteur
  Serial.println(valeur1);
  delay(2000);
  if(valeur1>800 || valeur1<200) //Si la valeur1 est supérieure à 800 ou inférieure à 200
  {Servomoteur.write(0);
delay(5000);} //Le moteur reste à l'arret
  
  
  else
  {valeurmax=valeur1; //La valeurmax prend la valeur1
  Servomoteur.write(25); //Le moteur tourne jusqu'à 25°
  delay(1000);
  valeur2=analogRead(capteur); //Relever la valeur2 du capteur
  Serial.println(valeur2);
  delay(2000);
  if(valeur2>800)
  {Servomoteur.write(25);
delay(5000);
Servomoteur.write(0);} //Le moteur reste à l'arret

  
  else 
if(valeur2>valeurmax)
  {valeurmax=valeur2; //La valeurmax prend la valeur2
  Servomoteur.write(45);} //Le moteur tourne jusqu'à 45°
  else
  Servomoteur.write(45); //La valeur max est toujours valeur1 le moteur tourne jusqu'à 45°
  delay(2000);
  valeur3=analogRead(capteur); //Relever la valeur3
  Serial.println(valeur3);
  delay(2000);
  if(valeur3>800)
  {Servomoteur.write(45);
delay(5000);} //Le moteur reste à l'arret
  
  else 
if(valeur3>valeurmax)
  {valeurmax=valeur3;
  Servomoteur.write(75);}
  else
  Servomoteur.write(75);//La valeurmax reste valeur1 ou valeur2, le moteur tourne jusqu'à 75°
  valeur4=analogRead(capteur); //Relever la valeur4
  Serial.println(valeur4);
  delay(2000);
  if(valeur4>800)
  {Servomoteur.write(75);
delay(5000);} //Le moteur reste à l'arret
  
  else if(valeur4>valeurmax)
  {Servomoteur.write(75);
   Serial.println(valeurmax);}
 //La valeur4 esr la plus élevée, le moteur reste donc en place
  
  else if(valeurmax==valeur3)
  {Servomoteur.write(45);} //La valeur3 est la plus élevée, le moteur tourne jusqu'à la postion v3
  
  else if(valeurmax==valeur2)
  {Servomoteur.write(25);} //La valeur2 est la plus élevée, le moteur tourne jusqu'à la postion v2
  
  else
  {Servomoteur.write(0);} //La valeur1 est la plus élevée, le moteur retourne à sa position de départ
  
  
  delay(5000);} //Attendre une heure 
  
}

Le seul problème que j'ai, c'est au début (entre autre) ; quand la valeur2 est supérieure à 800, elle retourne bien à 0, mais ensuite elle enchaine directement sur l'angle 45°, alors que je souhaiterai que le programme reprenne du début...
Pareil pour la valeur3>800...
Si vous avez une solution...
Merci !