Contrôler position d'un servo moteur (si possible sous Proteus)

Bonjour !
J’aimerais contrôler un servo moteur (sur lequel serait fixé un ultrason) avec des capeurs de mouvement PIR. Trois capteurs PIR en tout. Je voudrais que un animal bouge dans la zone d’un des trois capteurs, que celui qui est concerné face bougé le servo moteur. Et j’aimerai tester le tout sous Proteus comme je n’ai pas encore le matériel. Mais, je galère…

Voici mon code :

/* SERVO MOTEUR*/
#include <Servo.h>

Servo myservo;  // création de l'objet myservo

int pin_servo = 6;       // Pin sur lequel est branché le servo
int pos = 0;             // variable permettant de conserver la position du servo
int angle_initial = 0;   //angle initial
int angle_un = 60;
int angle_deux = 120;
int angle_trois = 180;
int angle_quatre = 240;
int angle_final = 300;   //angle final
int increment = 1;       //incrément entre chaque position



/*ULTRASON*/
/* Constantes pour les broches */
const byte TRIGGER_PIN = 7;                    // Broche TRIGGER
const byte ECHO_PIN = 8;                       // Broche ECHO

/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s

/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;


/* CAPTEUR PIR A*/
int inputPinA = 8;                    // choose the input pin (for PIR sensor)
int pirStateA = LOW;                  // we start, assuming no motion detected
int valA = 0;                         // variable for reading the pin status


/* CAPTEUR PIR B*/
int inputPinB = 9;
int pirStateB = LOW;
int valB = 0;

/* CAPTEUR PIR C*/
int inputPinC = 10;
int pirStateC = LOW;
int valC = 0;



void setup() {

  /* ULTRASON*/
  /* Initialise le port série */
  Serial.begin(115200);

  /* Initialise les broches */
  pinMode(TRIGGER_PIN, OUTPUT);
  digitalWrite(TRIGGER_PIN, LOW);             // La broche TRIGGER doit être à LOW au repos
  pinMode(ECHO_PIN, INPUT);

  /* CAPTEUR PIR */
  pinMode(inputPinA, INPUT);                  // declare sensor as input
  pinMode(inputPinB, INPUT);
  pinMode(inputPinC, INPUT);
  Serial.begin(9600);

  /* SERVO MOTEUR*/
  Serial.begin(9600);
  while (!Serial) { ; }
  myservo.attach(pin_servo);                 // attache le servo au pin spécifié sur l'objet myservo

}

void loop() {
  valA = digitalRead(inputPinA);            // read input value CAPTEUR PIR A
    if (valA == HIGH) {                     // check if the input is HIGH
      for (pos = angle_initial; pos <= angle_un; pos += increment)   // Déplace le servo de 0 à 60 degrées par pas de 1 degrée
      {myservo.write(pos);                    // Demande au servo de se déplacer à cette position angulaire
      delay(30);}                            // Attend 30ms entre chaque changement de position
      for (pos = angle_un; pos >= angle_initial; pos -= increment)
      { myservo.write(pos);
      delay(30);}
      }

  valB = digitalRead(inputPinB);             // read input value CAPTEUR PIR B
    if (valB == HIGH) {                      // check if the input is HIGH
      for (pos = angle_initial; pos <= angle_deux; pos += increment) 
      {myservo.write(pos);
      delay(30);}
      for (pos = angle_deux; pos <= angle_trois; pos += increment) 
      { myservo.write(pos);
      delay(30);}
      for (pos = angle_trois; pos >= angle_initial; pos -= increment)
      { myservo.write(pos);
      delay(30);}
      }

  valC = digitalRead(inputPinC);             // read input value CAPTEUR PIR C
    if (valC == HIGH) {                      // check if the input is HIGH
      for (pos = angle_initial; pos <= angle_deux; pos += increment)
      {myservo.write(pos);
      delay(30);}
      for (pos = angle_deux; pos <= angle_quatre; pos += increment) 
      {myservo.write(pos);
      delay(30);}
      for (pos = angle_quatre; pos <= angle_final; pos += increment)
      {myservo.write(pos);
      delay(30);}
      for (pos = angle_final; pos >= angle_initial; pos -= increment)
      {myservo.write(pos);
      delay(30);}
      }
}

Des avis ? Des conseils ?