You are on page 1of 3

PROGRAMME

//including the libraries


#include <AFMotor.h>

//defining pins and variables


#define left A0
#define center A1
#define right A2

//#defining motors
AF_DCMotor motor1(1, MOTOR12_1KHZ);
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);

int tourCount=0;
void setup() {

motor1.setSpeed(200);

motor2.setSpeed(200);

motor3.setSpeed(200);

motor4.setSpeed(200);

//declaring pin types


pinMode(left,INPUT);

pinMode(center,INPUT);

pinMode(right,INPUT);
//begin serial communication
Serial.begin(9600);

void loop(){
//printing values of the sensors to the serial monitor
Serial.println(analogRead(left));

Serial.println(analogRead(center));

Serial.println(analogRead(right));

if(analogRead(center)>400){
//line detected by both
if(analogRead(left)<=400 && analogRead(right)<=400){
//Forward
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);

}
else if(analogRead(left)>400 && analogRead(right)>400){
//Forward
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
// Incrémenter le compteur de tours si la ligne d'arrivée est détectée
if (analogRead(left)>400 && analogRead(right)>400) { // condition pour
détecter la ligne d'arrivée
delay(2000); // Attendre pour confirmer que c'est bien la ligne
d'arrivée
if (analogRead(left)>400 && analogRead(right)>400) {
tourCount++;
if (tourCount ==1) {
// Arrêter les moteurs après 1 tours
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
}
}
}
//line detected by left sensor
else if(analogRead(left)<=400 && analogRead(right)>400){
//turn Right
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);

}
//line detected by right sensor
else if(analogRead(left)>400 && analogRead(right)<=400){
//turn Left
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
}
else {
//line detected by left sensor
if(analogRead(left)<=400 && analogRead(right)>400){
//turn Right
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);

}
//line detected by right sensor
else if(analogRead(left)>400 && analogRead(right)<=400){
//turn Left
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);

//line detected by none


else if(analogRead(left)<=400 && analogRead(right)<=400){
//stop
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);

}
}

You might also like