Arduino projet avec Servomoteur

Bonjour, j'ai un petit problème avec arduino sur un code pour un servomoteur, je m'explique, je dois faire en sorte d'orienter mon servomoteur pour 3 positions prédéfinis (40°,90°,130°) en fonction de 2 capteurs qui remplissent 180° (1 seul capteurs détecté et l autre non = 40°, les 2 détectent = 90°, si seulement l'autre détecte = 130°),mais hélas lorsque je me renseigne sur les forums, je ne trouve que une position fixe initiale prédéfini ou un balayage de 0° à 180°.

int  button0 = 7; // broche 7
int  button1 = 6; // broche 6
int  button0State = 0; // on initialise l'état de nos capteurs (en attente)
int  button1State = 0; // on initialise l'état de nos capteurs (en attente)
#include <Servo.h> // on inclue la bibliotech du servomoteur
Servo monServo;  // on définit le nomp du servomoteur pour la suite du programme
 // on définit la première position du servomoteur comme l'angle 0
int position = 90;
int position2 = 40;
int position3 = 90;
int position4 = 130;


void setup()
{
  
    
    monServo.attach(9);  // attache le servo au pin spécifié sur l'objet myservo
    monServo.write(position);
  
    Serial.begin(9600);
    while(!Serial)
  
  
    pinMode(button0, INPUT);
    Serial.begin(9600);
    pinMode(button1, INPUT);
    Serial.begin(9600);
  
}

void loop()
{
  if ((button0State == HIGH)&& (button1State == LOW))
    {
    (Serial.println("Présence détectée en A")) ;
    monServo.write(position2);
    delay(200);
    }
  
  if ((button0State == LOW) && (button1State == HIGH))
  {
    Serial.println("Présence détectée en B");
    monServo.write(position4);
    delay(200);
    
  }
  if ((button0State == HIGH) && (button1State == HIGH))
  {
    Serial.println("Présence détectée en A et B");
    monServo.write(position3);
    delay(200);
    }
   }

J'aimerais savoir si il existe une commande qui permettrait cela, Merci.

Bonjour,

Un seul serial.begin() suffit.
Vous avez oubliez de faire la lecture des boutons...

Normalement, le post de Zlika règlera votre problème. Pour des raisons cosmétiques, vous pouvez retirer aussi le test sur le fonctionnement de serial (est fait dans le main, qui vous est caché, IIRC; ne perturbe pas l'essentiel de votre programme de positionnement)

#include <Servo.h> // on inclue la bibliotech du servomoteur
Servo monServo;  // on définit le nomp du servomoteur pour la suite du programme

int  button0 = 7; // broche 7
int  button1 = 6; // broche 6
int  button0State = 0; // on initialise l'état de nos capteurs (en attente)
int  button1State = 0; // on initialise l'état de nos capteurs (en attente)



void setup()
{  
   Serial.begin(9600);
   pinMode(button0, INPUT); 
   pinMode(button1, INPUT);
}

void loop()
{
 {
 button0State = digitalRead(button0);
 button1State = digitalRead(button1);
 }
 if ((button0State == HIGH)&& (button1State == LOW))
   {
   Serial.println("Présence détectée en A");
   monServo.attach(9);
   monServo.write(40);
   delay(20);
   }
 
 if ((button0State == LOW) && (button1State == HIGH))
 {
   Serial.println("Présence détectée en B");
   monServo.attach(9);
   monServo.write(130);
   delay(20);
   
 }
 if ((button0State == HIGH) && (button1State == HIGH))
 {
   Serial.println("Présence détectée en A et B");
   monServo.attach(9);
   monServo.write(90);
   delay(20);
   }
   if ((button0State == LOW) && (button1State == LOW))
   {
     Serial.println("Pas de présence");
     monServo.attach(9);
     monServo.write(0);
     delay(20);
   }
  }

5 minutes pour remettre ton code dans les balises dans le message précédent, sinon le sujet par au Bak à Poux Bêle