#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
#define RED_LED 6
#define WHITE_LED 7
#define GREEN_LED 8
#define MULTI_COLOURED_LED 9
#define YELLOW_LED 10
#define BLUE_LED 11
bool ledState = false;
void setup() {
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(WHITE_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(MULTI_COLOURED_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);
pinMode(A1, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
char value = Serial.read();
Serial.println(value);
if (value == 'U') {
Forward();
} else if (value == 'D') {
if (Serial.available() > 0) {
char nextChar = Serial.read();
if (nextChar == 'L') {
ledState = !ledState;
digitalWrite(A1, ledState ? HIGH : LOW);
}
}
} else if (value == 'S') {
Stop();
} else if (value == 'L') {
Left();
} else if (value == 'R') {
Right();
} else if (value == '1') {
digitalWrite(RED_LED, HIGH);
} else if (value == '2') {
digitalWrite(RED_LED, LOW);
} else if (value == '3') {
digitalWrite(WHITE_LED, HIGH);
} else if (value == '4') {
digitalWrite(WHITE_LED, LOW);
} else if (value == '5') {
digitalWrite(GREEN_LED, HIGH);
} else if (value == '6') {
digitalWrite(GREEN_LED, LOW);
} else if (value == '7') {
digitalWrite(MULTI_COLOURED_LED, HIGH);
} else if (value == '8') {
digitalWrite(MULTI_COLOURED_LED, LOW);
} else if (value == '9') {
digitalWrite(YELLOW_LED, HIGH);
} else if (value == '0') {
digitalWrite(YELLOW_LED, LOW);
} else if (value == 'q') {
digitalWrite(BLUE_LED, HIGH);
} else if (value == 'w') {
digitalWrite(BLUE_LED, LOW);
} else {
Serial.println("Invalid command");
}
}
}
void Forward() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void Backward() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void Stop() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void Left() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void Right() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}