|
int captG=02;// capteur gauche sur pin 2
|
|
int captD=03;// capteur droit sur 3
|
|
int M1=12;// sens de rotation moteur droit
|
|
int M2=13;// sens de rotation moteur gauche
|
|
int E1=10;// vitesse du moteur droit sur 10 (pas le choix car shield L298P)
|
|
int E2=11;// vitesse du moteur gauche sur 11
|
|
int valcaptG; // valeur reçu par le capteur Gauche
|
|
int valcaptD; // valeur reçu par le capteur Droit
|
|
int value = 120; // 0<value<255 NB: au dessous de 50 il n'y pas de réactions car la veleur est faible
|
|
|
|
void setup()
|
|
{
|
|
|
|
pinMode(M1,OUTPUT);//sortie sur moteur 1
|
|
pinMode(M2,OUTPUT);// sortie sur moteur 2
|
|
pinMode(captD, INPUT); // entrée capteur Droit
|
|
pinMode(captG, INPUT); // entrée capteur Gauche
|
|
|
|
}
|
|
|
|
void loop() {
|
|
|
|
valcaptD = digitalRead(captD);
|
|
valcaptG = digitalRead(captG);
|
|
|
|
|
|
if (valcaptG == 0 && valcaptD == 0) {
|
|
digitalWrite(M1, HIGH);//1 allumé
|
|
digitalWrite(M2, HIGH);//2 allumé
|
|
analogWrite(E1,value);//on gére la vitesse du moteur droit
|
|
analogWrite(E2,value);//on gére la vitesse du moteur gauche
|
|
}
|
|
|
|
|
|
else if (valcaptG == 1 && valcaptD == 0) {
|
|
digitalWrite(M1, HIGH);// alors 1 allumé
|
|
digitalWrite(M2, HIGH);// 2 tourne moins vite -> on tourne vers la gauche
|
|
analogWrite(E1,value);//on gére la vitesse du moteur droit
|
|
analogWrite(E2,0);//vitesse du moteur Gauche=0 car on tourne à gauche
|
|
}
|
|
else if (valcaptG == 0 && valcaptD == 1) {
|
|
digitalWrite(M1, HIGH);//alors moteur 1 tourne moins vite
|
|
digitalWrite(M2, HIGH);// et 2 allumé -> on tourne vers la droite
|
|
analogWrite(E1,0);//vitesse du moteur Droit=0 car on tourne à droite
|
|
analogWrite(E2,value);// on gère la vitesse du moteur gauche
|
|
}
|
|
else {
|
|
digitalWrite(M1, HIGH);// alors moteur 1 éteint
|
|
digitalWrite(M2, HIGH);// alors moteur 2 éteint
|
|
analogWrite(E1,0);//vitesse du moteur=0
|
|
analogWrite(E2,0);// vitesse du moteur=0
|
|
}
|
|
|
|
}
|