ArduBot (3 / 8 steg)
Steg 3: Arduino Motorshield
När din motor sköld är alla anslutna, blir det en fråga om programmering din arduino:
CONST int DIRB = 13. uppsättningar lämnade motor riktning
CONST int DIRA = 12. anger rätt motor riktning
CONST int PWMB = 11; analog; uppsättningar varvtal
CONST int PWMA = 3; analog; uppsättningar varvtal
int PWMAfwd, PWMArev, PWMAleft, PWMAright, PWMAhalt, PWMBfwd, PWMBrev, PWMBleft, PWMBright;
void setup() {
pinMode (DIRB, OUTPUT);
pinMode (PWMB, OUTPUT);
pinMode (PWMA, OUTPUT);
pinMode (DIRA, OUTPUT);
Serial.BEGIN(9600);
PWMAfwd = 200. används för att trimma motorspeeds för olika robot avrättningar
PWMBfwd = 255;
PWMArev = 200.
PWMBrev = 255;
PWMAleft = 200.
PWMBleft = 255;
PWMAright = 200.
PWMBright = 255;
}
void fwd () {//sets motors att vidarebefordra
digitalWrite (DIRA, hög);
digitalWrite (DIRB, hög);
analogWrite (PWMA, PWMAfwd);
analogWrite (PWMB, PWMBfwd);
}
void rev () {//sets motors att vända
digitalWrite (DIRB, låg);
digitalWrite (DIRA, låg);
analogWrite (PWMB, PWMBrev);
analogWrite (PWMA, PWMArev);
}
tomrummet () {//turns bot kvar på plats
digitalWrite (DIRB, låg);
digitalWrite (DIRA, hög);
analogWrite (PWMB, PWMBleft);
analogWrite (PWMA, PWMAleft);
}
Annullera rätt () {/ / varv bot rätta på plats
digitalWrite (DIRB, hög);
digitalWrite (DIRA, låg);
analogWrite (PWMB, PWMBright);
analogWrite (PWMA, PWMAright);
}
void stoppa () {//stops motors
digitalWrite (PWMB, låg);
digitalWrite (PWMA, låg);
}
void directiontest () {
FWD ();
fördröjning (1000);
stoppa ();
fördröjning (1000);
rev ();
fördröjning (1000);
stoppa ();
fördröjning (1000);
(vänster);
fördröjning (1000);
stoppa ();
fördröjning (1000);
(rätt);
fördröjning (1000);
stoppa ();
fördröjning (1000);
}
Ogiltig loop () {
directiontest();
}
Om din bot rörelser inte motsvarar din funktionsnamn du kan åter placera motoriska trådarna så att skriva riktning pin hög uppsättningar motorerna vidarebefordra, eller du kan justera det inom ditt program.
Det är inte nödvändigt att definiera variabler för varje puls bredd modulering process, men jag ville kunna justera motor rusar i olika funktioner.