D'accord merci ![]()
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'arretelse if(valeur1<1000)
{Servomoteur.write(0);} //Le moteur reste à l'arretelse
{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'arretelse 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'arretelse 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'arretelse if(valeur4>valeurmax)
{Servomoteur.write(75);} //La valeur4 esr la plus élevée, le moteur reste donc en placeelse if(valeurmax=valeur3)
{Servomoteur.write(45);} //La valeur3 est la plus élevée, le moteur tourne jusqu'à la postion v3else if(valeurmax=valeur2)
{Servomoteur.write(25);} //La valeur2 est la plus élevée, le moteur tourne jusqu'à la postion v2else
{Servomoteur.write(0);} //La valeur1 est la plus élevée, le moteur retourne à sa position de départdelay(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?