problem da la rapidite

Bonjour

je suis entrain de réalise un robot qui détecte les obstacles .
pour détecte les obstacles j'ai choisie de travail avec ultrasonic HC-SR04, le robot doit s'arréter quand il détecte un obstacle de distance 25cm .
Dans la réalité le rebot s’arrête mais le problème , c'est le temps de la réaction qu'y est est très lente , le robot s’arrête quand il arrive à l'obstacle :S
une partie du code :

const int motorD=2;
const int motorG=3;
#define trigPin 8
#define echoPin 9


int temoigne;
int temoigne2,detecte,detecte2;
void setup()
{
  pinMode(motorD,OUTPUT);
  pinMode(motorG,OUTPUT);
  
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 

}


void loop()
{
  
  temoigne=distance();
 
  if(temoigne==0)
          {
               digitalWrite(motorD,HIGH);
               digitalWrite(motorG,HIGH);
          } 
      else{
              digitalWrite(motorD,LOW);
              digitalWrite(motorG,LOW);
          }
}

int distance()
{
  int c;
int duration, distance;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance >= 20 || distance <= 0){
    Serial.println("Out of range");
c=0 ; 
}
  else {
    Serial.print(distance);
    Serial.println(" cm");
c=1  ;
}
  delay(500);
return c;
}

delay(500) attend pendant 0.5 secondes à chaque fois

sans compter les Serial.print(), le fait d'utiliser des int à la place de boolean, les digitalWrite...

mais à mon avis, c'est peut-être simplement l'inertie des moteurs.

merci Christian_R
maintenant ça marche mieux