Mikey gå hem (7 / 8 steg)
Steg 7: kod
Läs in koden nedan i Arduino som styr motorerna.
int avgift = 0; int val = 0; int värde1 = 0; int valm = 0; int valm1 = 0; int hoppa = 3; int ctr = 0; //counter const int pwmA = 3; CONST int pwmB = 11; CONST int brakeA = 9; CONST int brakeB = 8; CONST int dirA = 12. CONST int dirB = 13. CONST int höger = 5. CONST int vänster = 7. CONST int chglt = 6; void setup() {pinMode (dirA, produktionen), pinMode (brakeA, produktionen); pinMode (dirB, produktionen); pinMode (brakeB, produktionen); pinMode(right,INPUT); pinMode(left,INPUT); pinMode(chglt,OUTPUT); digitalWrite (dirA, hög), //forward A digitalWrite (brakeA, låg); //release brakeA analogWrite (pwmA, 100); //set hastighet A digitalWrite (chglt, hög); //test avgift ljus digitalWrite (dirB, hög); //forward B motor digitalWrite(brakeB,LOW); / / analogWrite (pwmB, 100); //set hastighet B delay(700), digitalWrite (chglt ,Low); //set ladda ljus} ogiltig loop () {om (hoppa == 0) {analogWrite (pwmA, 0); //charge Funna analogWrite(pwmB,0); digitalWrite(chglt,HIGH); delay(50000);} om (hoppa == 1) {valm=analogRead(0); valm1=analogRead(1); om (valm > 500 eller valm1 > 500) {valm=analogRead(0); valm1=analogRead(1); om (valm > 450 eller valm1 > 450) {digitalWrite (brakeA, hög), digitalWrite (brakeB, hög), digitalWrite (dirA LÅG), //reverse A digitalWrite (brakeA, låg); / / analogWrite (pwmA, 200); digitalWrite(dirB,LOW); digitalWrite(brakeB,LOW); analogWrite(pwmB,200); fördröjning (700), //backup digitalWrite (brakeA, hög), //stop ett hjul analogWrite(pwmA,0); Delay(1000); digitalWrite (brakeB, hög), //stop andra hjul //start båda rullar framåt digitalWrite(dirA,HIGH); digitalWrite(brakeA,LOW); analogWrite(pwmA,140); digitalWrite(dirB,HIGH); digitalWrite(brakeB,LOW); analogWrite(pwmB,140); Delay(1000); {}}} //find station om (hoppa == 3) {analogWrite(pwmA,0); analogWrite(pwmB,0); val=digitalRead(right); val1=digitalRead(left); om (val == hög & & värde1 == hög) {analogWrite(pwmA,140); analogWrite(pwmB,140); om (ctr < 150) {ctr = ctr + 1; kostnad = analogRead (2). //test för laddning station if(charge>100) {hoppa = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}} om (val == hög & & värde1 == låg) {analogWrite (pwmA 190); analogWrite(pwmB,50); om (ctr < 150) {ctr = ctr + 1; kostnad = analogRead (2), //test för laddning station if(charge>100) {hoppa = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}} om (värde1 == hög & & val == låg) {analogWrite(pwmB,190); analogWrite(pwmA,50); om (ctr < 150) {ctr = ctr + 1; kostnad = analogRead (2), //test för laddning station if(charge>100) {hoppa = 0; ctr = 5000;} if(ctr==150) {ctr = 0;}}}}}