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;
}