Stap 3: Code voor de Rover
int E1 = 6; M1 De controle van de snelheid van de
int E2 = 5; M2 De controle van de snelheid
int M1 = 8; M1 Richtingscontrole
int M2 = 7; M2 Richtingscontrole
int LED = 13;
void setup(void)
{
int i;
voor (ik = 5; ik < = 8; i ++)
pinMode (ik, OUTPUT);
pinMode (13, OUTPUT);
Serial.begin(9600);
}
void loop(void)
{
terwijl (Serial.available() < 0) {} / / Wait totdat een karakter wordt ontvangen
val char = Serial.read();
int leftspeed = 255; 255 is maximale snelheid
int rightspeed = 255;
switch(val) / / een actie afhankelijk van de opdracht uitvoeren
{
geval 'w': / / vooruit
vooruit (leftspeed, rightspeed);
breken;
geval van ': / / naar achteren bewegen
omgekeerde (leftspeed, rightspeed);
breken;
geval 'a': / / linksaf
Left (leftspeed, rightspeed);
breken;
geval zou ': / / rechtsaf
rechts (leftspeed, rightspeed);
breken;
geval 'l': / / LED
blink_LED();
breken;
geval 'f': / / Stop
Stop();
breken;
standaard:
breken;
}
}
VOID stop (void) //Stop
{
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
}
VOID vooruit (char a, char b).
{
analogWrite (E1, een);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
VOID omgekeerde (char a, char b).
{
analogWrite (E1, een);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
VOID links (a, char char b).
{
analogWrite (E1, een);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}
VOID recht (char a, char b).
{
analogWrite (E1, een);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}
VOID blink_LED)
{
digitalWrite (LED, hoge);
delay(200);
digitalWrite (LED, laag);
delay(100);
digitalWrite (LED, hoge);
delay(200);
digitalWrite (LED, laag);
}