Professional Documents
Culture Documents
//#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);
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);
}
}