|
//Rapha?l Coti
|
|
|
|
int M1=12;// moteur 1 ou A sur pin 12
|
|
int M2=13;// idem 2 ou B sur 13
|
|
int CG=02;// capteur gauche inrarouge sur pin 2
|
|
int CD=03;// idem droit sur 3
|
|
int E1=10;// vitesse du moteur 1 sur 10 (pas le choix car shield L298P)
|
|
int E2=11;// idem moteur 2 sur 11
|
|
|
|
void setup()
|
|
{
|
|
|
|
pinMode(M1,OUTPUT);//sortie sur moteur 1
|
|
pinMode(M2,OUTPUT);//idem 2
|
|
pinMode(CG,INPUT);//entr? capteur ir gauche
|
|
pinMode(CD,INPUT);//idem droit
|
|
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
if (digitalRead(CG) == HIGH && digitalRead(CD) == HIGH) // si les capteurs ne d?tecte pas le sol
|
|
{
|
|
digitalWrite(M1, LOW);// alors moteur 1 ?teint
|
|
digitalWrite(M2, LOW);//idem moteur 2
|
|
analogWrite(E1,0);//on g?re la vitesse du moteur 1
|
|
analogWrite(E2,0);//idem moteur 2
|
|
}
|
|
else if (digitalRead(CG) == LOW && digitalRead(CD) == HIGH) // si le capteur gauche detecte le sol et le capteur droit est sur une ligne noir
|
|
{
|
|
digitalWrite(M1, HIGH);//alors moteur 1 tourne moins vite
|
|
digitalWrite(M2, HIGH);// et 2 allum? -> on tourne vers la droite
|
|
analogWrite(E1,0);//on g?re la vitesse du moteur 1
|
|
analogWrite(E2,200);//idem moteur 2
|
|
}
|
|
else if (digitalRead(CG) == HIGH && digitalRead(CD) == LOW) // si inverse, droit detecte le sol, gauche sur une ligne noir
|
|
{
|
|
digitalWrite(M1, HIGH);// alors 1 allum?
|
|
digitalWrite(M2, HIGH);// 2 tourne moins vite -> on tourne vers la gauche
|
|
analogWrite(E1,200);//on g?re la vitesse du moteur 1
|
|
analogWrite(E2,0);//idem moteur 2
|
|
}
|
|
else if (digitalRead(CG) == LOW && digitalRead(CD) == LOW)
|
|
{
|
|
digitalWrite(M1, HIGH);//1 allum?
|
|
digitalWrite(M2, HIGH);//2 allum?
|
|
analogWrite(E1,200);//on g?re la vitesse du moteur 1
|
|
analogWrite(E2,155);//idem moteur 2
|
|
}
|
|
}
|