j'ai un problème dans le programme de mon robot suiveur de ligne et detecteur d'obstacle . SVP donne moi le code correcte !! ç'est très urgent SVP
int trigg=4;
int echog=5;
int trigf=6;
int echof=7;
int en1=9;
int in1=8;
int in2=10;
int en2=11;
int in3=12;
int in4=13;
#define CNYd A0
#define CNYg A1
int v=50;
int Dg;
void setup() {
// put your setup code here, to run once:
pinMode(trigf,OUTPUT);
pinMode(trigg,OUTPUT);
pinMode(echof,INPUT);
pinMode(echog,INPUT);
pinMode(en1,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(en2,OUTPUT);
pinMode(CNYd,INPUT);
pinMode(CNYg,INPUT);
Serial.begin(9600);
}
void forward(){
analogWrite(en1,50);
analogWrite(en2,50);
digitalWrite(in1,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in4,LOW);
}
void backward(){
analogWrite(en1,50);
analogWrite(en2,50);
digitalWrite(in2,HIGH);
digitalWrite(in4,HIGH);
digitalWrite(in1,LOW);
digitalWrite(in3,LOW);
}
void left(int a){
analogWrite(en1,a);
analogWrite(en2,5);
digitalWrite(in1,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in4,LOW);
}
void right(int b){
analogWrite(en1,5);
analogWrite(en2,b);
digitalWrite(in1,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in4,LOW);
}
long testUSf(){
long duration_f, Df;
digitalWrite(trigf, LOW);
delayMicroseconds(2);
digitalWrite(trigf, HIGH);
delayMicroseconds(10);
digitalWrite(trigf, LOW);
duration_f = pulseIn(echof, HIGH);
Df = (duration_f/2) / 29.1;
return Df;
}
int testUSg(){
long duration_g, Dg;
digitalWrite(trigg, LOW);
delayMicroseconds(2);
digitalWrite(trigg, HIGH);
delayMicroseconds(10);
digitalWrite(trigg, LOW);
duration_g = pulseIn(echog, HIGH);
Dg = (duration_g/2) / 29.1;
return Dg;
}
void loop() {
// put your main code here, to run repeatedly:
int g=analogRead(CNYg);
int d=analogRead(CNYd);
if ( (d<400) && (g>400))
{
left(v);
}
else if ( (g<400) && (d>400))
{
right(v);
}
else
{
forward();
}
}
void obstacle()
{
if ( echof<20)
{
left(v);
}
else
{
forward();
}
}