int motor1Pin1 = 2; int motor1Pin2 = 3; int motor1EnablePin = 10; int motor2Pin1 = 4; int motor2Pin2 = 5; int motor2EnablePin = 11; int state; int Speed = 100; int flag=0; int stateStop=0; void setup() { Serial.begin(9600); pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor1EnablePin, OUTPUT); pinMode(motor2EnablePin, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); } void loop() { if(Serial.available() > 0){ state = Serial.read(); if(state > 5){ Speed = state;} flag=0; } if (state == 1) { forword(); if(flag == 0){ Serial.println("Forward!"); flag=1; } } else if (state == 2) { turnLeft(); if(flag == 0){ Serial.println("LEFT"); flag=1; } } else if (state == 3) { Stop(); if(flag == 0){ Serial.println("STOP!"); flag=1; } } else if (state == 5) { turnRight(); if(flag == 0){ Serial.println("Turn RIGHT"); flag=1; } } else if (state == 4) { backword(); if(flag == 0){ Serial.println("Reverse!"); flag=1; } } } void forword(){ digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); analogWrite(motor1EnablePin, Speed); analogWrite(motor2EnablePin, Speed); } void backword(){ digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); analogWrite(motor1EnablePin, Speed); analogWrite(motor2EnablePin, Speed); } void turnRight(){ digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); analogWrite(motor1EnablePin, Speed); analogWrite(motor2EnablePin, Speed); } void turnLeft(){ digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); analogWrite(motor1EnablePin, Speed); analogWrite(motor2EnablePin, Speed); } void Stop(){ digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); analogWrite(motor1EnablePin, Speed); analogWrite(motor2EnablePin, Speed); }