Stap 8: Motor Software
Deze schets is geladen in de Arduino met een motor schild op de top.
Merk op dat de "sprong = 1' Hiermee gaat u naar het tweede deel van het programma, waar de robot de kikker jaagt. Het eerste deel van het programma wordt gebruikt om de robot te bewegen zonder vast komen te zitten (een toekomstige enhancement--binnenkort).
int val = 0;
int val1 = 0; int valm = 0; int valm1 = 0; int sprong = 1;
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 rechts = 5; Const int links = 7;
void setup {pinMode (dirA, OUTPUT); pinMode (brakeA, OUTPUT); pinMode (dirB, OUTPUT); pinMode (brakeB, OUTPUT); pinMode(right,INPUT); pinMode(left,INPUT); digitalWrite (dirA, hoge); //forward A digitalWrite (brakeA, laag); //release brakeA analogWrite (pwmA, 100); //set snelheid A digitalWrite (dirB, hoge); //forward B motor digitalWrite(brakeB,LOW); / / analogWrite (pwmB, 100); //set snelheid B delay(700);
}
void loop () {als (springen == 0) {valm=analogRead(0); valm1=analogRead(1); als (valm > 500 of valm1 > 500) {valm=analogRead(0); valm1=analogRead(1); als (valm > 450 of valm1 > 450) {digitalWrite (brakeA, hoge); digitalWrite (brakeB, hoge); digitalWrite (dirA, laag); //reverse A digitalWrite (brakeA, laag); / / analogWrite (pwmA, 200); digitalWrite(dirB,LOW); digitalWrite(brakeB,LOW); analogWrite(pwmB,200); vertraging (700), //backup digitalWrite (brakeA HOGE); //stop één wiel analogWrite(pwmA,0); delay(1000); digitalWrite (brakeB, hoge); //stop andere wiel //start beide wielen voorwaartse digitalWrite(dirA,HIGH); digitalWrite(brakeA,LOW); analogWrite(pwmA,140); digitalWrite(dirB,HIGH); digitalWrite(brakeB,LOW); analogWrite(pwmB,140); delay(1000); }}} //jump gelijk een analogWrite(pwmA,0); analogWrite(pwmB,0); Val=digitalRead(right); val1=digitalRead(Left); Als (val == HIGH & & val1 == HIGH) {analogWrite(pwmA,140); analogWrite(pwmB,140); delay(1000);} als (val == HIGH & & val1 == LOW) {analogWrite (pwmA, 140); analogWrite(pwmB,50); delay(1000);} als (val1 == HIGH & & val == LOW) {analogWrite(pwmB,140); analogWrite(pwmA,50); delay(1000);}
}