Réalisation Robot motorisé avec capteurs ultrason

Bonjour
Actuellement en licence professionnelle, nous avons un projet de conception d’un robot autonome controlé par une carte arduino uno. Ce robot est composé d’un capteur ultrason pour detecter la distance d’un obstacle et d’un servomoteur pour pouvoir faire tourner l’angle du capteur.

Nous rencontrons un problème sur la programmation, en effet, lorsque nous faisons fonctionner le programme du servomoteur et du capteur indépendamment, il n’y a aucun soucis mais lorsque nous tentons de fusionner ses 2 programmes, la detection ne se fait quesur une certaine position du capteur

voici notre programme :
#include <SPI.h>
#include <Servo.h>
Servo servo1;

//moteur A
const int pinPWMA = 3;
const int pinDirA = 12;
const int pinBreakA = 9;

//moteur B
const int pinPWMB = 11;
const int pinDirB = 13;
const int pinBreakB = 8;

//Capteur ultrason
bool debug = true;
long unsigned int serialBaudrate = 9600;
const int pingPin = 4; // Pin du signal (broche 4)

void setup()
//Capteur ultrason
{
// Initialisation du port serie.
Serial.begin(serialBaudrate);

// pin moteur
pinMode(pinPWMA, OUTPUT);
pinMode(pinDirA, OUTPUT);
pinMode(pinBreakA, OUTPUT);

pinMode(pinPWMB, OUTPUT);
pinMode(pinDirB, OUTPUT);
pinMode(pinBreakB, OUTPUT);

digitalWrite(pinBreakA, LOW);
digitalWrite(pinBreakB, LOW);

// pin servo moteur
servo1.attach(2);
servo1.write(0);
delay(2000);

}

void loop()

//Rotation servomoteur pour capteur ultrason
{
{
for ( int iAngle=45; iAngle<=135; iAngle+=1);// 0 à 180
{
servo1.write(135);
delay(300);
}

for ( int iAngle=135; iAngle<=45; iAngle+=1);// 180 à 0
{
servo1.write(45);
delay(300);
}

{

// detection Capteur ultrason

long duration; //etablie la durée du signal
double inches, cm; //distance en inches et cm

//alterner impulsion haute et basse afin d’obtenir une impulsion haute propre
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);

// Temps en microseonde a partir de l’envoie de echo jusqu’a sa reception
pinMode(pingPin, INPUT); // la meme broche est utilisé pour lire le signal
duration = pulseIn(pingPin, HIGH);
// convertion du temps en une distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);

if(debug)
{
Serial.print(duration);
Serial.print(" ms, “);
Serial.print(inches);
Serial.print(” in, “);
Serial.print(cm);
Serial.println(” cm");
}
delay(100);
}

}

//Deplacement robot
{
digitalWrite(pinDirA, LOW); //DIRECTION a = ARRIERE
digitalWrite(pinDirB, HIGH); //DIRECTION B = AVANT

analogWrite(pinPWMA, 100);
analogWrite(pinPWMB, 100);
delay(300);
}
}

//convertir Microseconde en inche
double microsecondsToInches(long microseconds)
{
return ((microseconds / 73.746) / 2.0);
}

//convertir microseconde en Cm
double microsecondsToCentimeters(long microseconds)
{
return ((microseconds / 29.034) / 2.0);
}

Merci pour votre aide !!

Bonsoir - Vous croyez que ça fait quoi ça

for ( int iAngle=45; iAngle<=135; iAngle+=1);// 0 à 180
      {
  servo1.write(135);
  delay(300);
      }
      
  for ( int iAngle=135; iAngle<=45; iAngle+=1);// 180 à 0
      {
   servo1.write(45);
   delay(300);
      }

(et c’est quoi toutes ces accolades qui traînent ?)

====
corrigez votre post ci dessus et rajoutez les balises de code autour du programme:
[code]`` [color=blue]// votre code ici[/color] ``[/code].

ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l’IDE avant de copier le code pour qu’il soit indenté correctement)