Skip to content

Instantly share code, notes, and snippets.

@TokisakiKurumi2001
Last active November 14, 2019 01:50
Show Gist options
  • Select an option

  • Save TokisakiKurumi2001/e89041be71cec8e578842ba8742cb2aa to your computer and use it in GitHub Desktop.

Select an option

Save TokisakiKurumi2001/e89041be71cec8e578842ba8742cb2aa to your computer and use it in GitHub Desktop.
#define LEFT_FORWARD 11
#define LEFT_BACKWARD 8
#define LEFT_SPEED 9
#define RIGHT_FORWARD 13
#define RIGHT_BACKWARD 12
#define RIGHT_SPEED 10
void setup() {
pinMode(LEFT_FORWARD, OUTPUT);
pinMode(LEFT_BACKWARD, OUTPUT);
pinMode(LEFT_SPEED, OUTPUT);
pinMode(RIGHT_FORWARD, OUTPUT);
pinMode(RIGHT_BACKWARD, OUTPUT);
pinMode(RIGHT_SPEED, OUTPUT);
}
void loop() {
if (Serial.available())
{
char temp = Serial.read();
if (temp == 'W') {
speed(100,100);
} else if (temp == 'S') {
speed(-100,-100);
} else if (temp == 'A') {
speed(-100, 100);
} else if (temp == 'D') {
speed(100, -100);
} else if (temp == '\n') {
// Do nothing
} else {
speed(0, 0);
}
}
}
void speed(int speed_left, int speed_right) {
if (speed_left < 0) {
digitalWrite(LEFT_FORWARD, LOW);
digitalWrite(LEFT_BACKWARD, HIGH);
analogWrite(LEFT_SPEED, speed_left);
} else if (speed_left > 0) {
digitalWrite(LEFT_FORWARD, HIGH);
digitalWrite(LEFT_BACKWARD, LOW);
analogWrite(LEFT_SPEED, speed_left);
} else {
digitalWrite(LEFT_FORWARD, LOW);
digitalWrite(LEFT_BACKWARD, LOW);
}
if (speed_ right < 0) {
digitalWrite(RIGHT_FORWARD, LOW);
digitalWrite(RIGHT_BACKWARD, HIGH);
analogWrite(RIGHT_SPEED, speed_right);
} else if (speed_right > 0) {
digitalWrite(RIGHT_FORWARD, HIGH);
digitalWrite(RIGHT_BACKWARD, LOW);
analogWrite(RIGHT_SPEED, speed_right);
} else {
digitalWrite(RIGHT_FORWARD, LOW);
digitalWrite(RIGHT_BACKWARD, LOW);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment