DFRobotShop Rover w/Xbee och Joystick (3 / 4 steg)
Steg 3: Kod för Rover
int E1 = 6; M1 Varvtalsreglering
int E2 = 5; M2 Varvtalsreglering
int M1 = 8. M1 Riktning kontroll
int M2 = 7. M2 Riktning kontroll
int LED = 13.
void setup(void)
{
int i;
för (jag = 5; jag < = 8; i ++)
pinMode (i, matas);
pinMode (13, OUTPUT);
Serial.BEGIN(9600);
}
void loop(void)
{
medan (Serial.available() < 0) {} / / vänta tills ett tecken tas emot
char val = Serial.read();
int leftspeed = 255; 255 är högsta hastighet
int rightspeed = 255;
Switch(val) / / utföra en åtgärd beroende på kommandot
{
fallet "w": / / flytta fram
framåt (leftspeed, rightspeed);
bryta;
fallet ": / / flytta bakåt
bakåt (leftspeed, rightspeed);
bryta;
fallet "a": / / sväng vänster
vänster (leftspeed, rightspeed);
bryta;
fall skulle ": / / sväng höger
rätt (leftspeed, rightspeed);
bryta;
fallet "l": / / LED
blink_LED();
bryta;
fallet "f": / / stopp
Stop();
bryta;
standard:
bryta;
}
}
Annullera stop (void) //Stop
{
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
}
utan laga kraft framåt (char a, char b).
{
analogWrite (E1, en);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
void omvänd (char a, char b).
{
analogWrite (E1, en);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
Annullera vänster (char a, char b).
{
analogWrite (E1, en);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
ogiltigförklara rätten (char a, char b).
{
analogWrite (E1, en);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
void blink_LED)
{
digitalWrite (LED, hög);
Delay(200);
digitalWrite (LED, låg);
Delay(100);
digitalWrite (LED, hög);
Delay(200);
digitalWrite (LED, låg);
}