Besoin d'aide pour programmation d'un servomoteur

D'accord merci :slight_smile:
Et effectivement, je n'ai pas encore de servomoteur sous la main... :~
J'ai fais le programme comme ça alors, si quelqu'un trouve quelque chose à modifier, je suis preneuse :3

#include <Servo.h>
Servo Servomoteur;

//Constantes

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

//Variables
long valeur1 = 0 ;
long valeur2 = 0 ;
long valeur3 = 0 ;
long valeur4 = 0 ;
long valeurmax = 0 ;

//Fonction Setup

void setup (){
pinMode(capteur, OUTPUT); //Attacher la pin __ à l'objet Servomoteur
Servomoteur.attach(9); //Attacher le Servomoteur à la pin9, angle à 90°
Servomoteur.write(0); //Remettre l'angle à 0°

}

//Fonction loop

void loop () {
Servomoteur.write(0);

int valeur=analogRead(capteur); //Relever la valeur1 du capteur
if(valeur1>30000)
{Servomoteur.write(0);} //Le moteur reste à l'arret

else if(valeur1<1000)
{Servomoteur.write(0);} //Le moteur reste à l'arret

else
{valeurmax=valeur1; //La valeurmax prend la valeur1
Servomoteur.write(25);} //Le moteur tourne jusqu'à 25°

int valeur2=analogRead(capteur); //Relever la valeur2 du capteur
if(valeur2>30000)
{Servomoteur.write(25);} //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°

int valeur3=analogRead(capteur); //Relever la valeur3
if(valeur3>30000)
{Servomoteur.write(45);} //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°

int valeur4=analogRead(capteur); //Relever la valeur4
if(valeur4>30000)
{Servomoteur.write(75);} //Le moteur reste à l'arret

else if(valeur4>valeurmax)
{Servomoteur.write(75);} //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(3600000); //Attendre une heure

}

Je pense qu'il y aura un problème au niveau de mes "int valeur=analogRead(capteur)..."
Parce que je souhaiterai que la suite du programme ne se produise pas si la valeur est >30 000, enfin qu'il passe directement au delay, et redémarre... alors que selon mon programme, apparemment, les autres analogRead seraient quand même effectués, non?