Étape 7: Code
Insérez le code ci-dessous dans l’Arduino qui commande les moteurs.
frais d’int = 0 ; int val = 0 ; int val1 = 0 ; valm int = 0 ; int valm1 = 0 ; saut d’int = 3 ; ctr d’int = 0; //counter const int Pw101 = 3 ; const int pwmB = 11 ; const int brakeA = 9 ; const int brakeB = 8 ; const int dirA = 12 ; const int dirB = 13 ; const int droite = 5 ; const int gauche = 7 ; const int chglt = 6 ; void setup() {pinMode (dirA, OUTPUT); pinMode (brakeA, sortie); pinMode (dirB, OUTPUT); pinMode (brakeB, sortie); pinMode(right,INPUT) ; pinMode(left,INPUT) ; pinMode(chglt,OUTPUT) ; digitalWrite (dirA, HIGH); //forward A digitalWrite (brakeA, basse); //release brakeA analogWrite (Pw101, 100); //set vitesse A digitalWrite (chglt, HIGH); //test frais léger digitalWrite (dirB, HIGH); digitalWrite(brakeB,LOW) moteur //forward B; / / analogWrite (pwmB, 100); //set Vitesse B delay(700) ; digitalWrite (chglt ,Low) ; //set charger light off} void loop () {si (sauter == 0) {analogWrite (Pw101, 0); //charge trouvé analogWrite(pwmB,0) ; digitalWrite(chglt,HIGH) ; delay(50000);} si (sauter == 1) {valm=analogRead(0) ; valm1=analogRead(1) ; si (valm > 500 ou valm1 > 500) {valm=analogRead(0) ; valm1=analogRead(1) ; si (valm > 450 ou valm1 > 450) {digitalWrite (brakeA, HIGH); digitalWrite (brakeB, HIGH); digitalWrite (dirA FAIBLE); //reverse A digitalWrite (brakeA, LOW); / / analogWrite (Pw101, 200) ; digitalWrite(dirB,LOW) ; digitalWrite(brakeB,LOW) ; analogWrite(pwmB,200) ; retard (700); //backup digitalWrite (brakeA, HIGH); //stop une roue analogWrite(pwmA,0) ; Delay(1000) ; digitalWrite (brakeB, HIGH); //stop autre roue //start les deux roues avant digitalWrite(dirA,HIGH) ; digitalWrite(brakeA,LOW) ; analogWrite(pwmA,140) ; digitalWrite(dirB,HIGH) ; digitalWrite(brakeB,LOW) ; analogWrite(pwmB,140) ; Delay(1000) ; station de //find}}} si (sauter == 3) {analogWrite(pwmA,0) ; analogWrite(pwmB,0) ; val=digitalRead(right) ; val1=digitalRead(left) ; si (val == HIGH & & val1 == haute) {analogWrite(pwmA,140) ; analogWrite(pwmB,140) ; si (ctr < 150) {ctr = ctr + 1; frais = analogRead (2); //test pour station de charge if(charge>100) {sauter = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}} si (val == haute & & val1 == faible) {analogWrite (Pw101 190) ; analogWrite(pwmB,50) ; Si (ctr < 150) {ctr = ctr + 1; frais = analogRead (2); //test pour station de charge if(charge>100) {sauter = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}} Si (val1 == HIGH & & val == faible) {analogWrite(pwmB,190) ; analogWrite(pwmA,50) ; si (ctr < 150) {ctr = ctr + 1; frais = analogRead (2); //test pour station de charge if(charge>100) {sauter = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}}}}