Vous êtes sur la page 1sur 4

Suiveur de ligne

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

Dans le programe que tu donnes, tu n'appelles même pas la fonction de détection


d'obstacle.

Donc évitement ça veut dire quoi:

1. tu contournes par un coté disons par exemple par la droite:

 tourner à droite 90°


 avancer d'une certaine distance
 tourner à gauche 90°
 avancer d'une certaine distance
 tourner à gauche 90°
 avancer jusqu'à trouver la ligne

2. le contournement terminé, il faut se recaler sur la ligne

 tourner sur la droite en se centrant sur la ligne


3. et c'est reparti

Vous aimerez peut-être aussi