Projet

Général

Profil

Low Bot » suiveur_ligne_shield.ino

Thomas Coment, 23/11/2020 15:24

 
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
}

}
(7-7/9)