#define LEFT_AHEAD 13
#define LEFT_BACK 12
#define RIGHT_AHEAD 10
#define RIGHT_BACK 9
#include <Servo.h>
Servo servo_pin_14;
void stopBack();
void turnLeft();
void turnRight();
void goAhead();
void park();
void back();
void backLeft();
void backRight();
void setup(){
Serial.begin(9600);
pinMode(LEFT_AHEAD,OUTPUT);
pinMode(LEFT_BACK, OUTPUT);
pinMode(RIGHT_AHEAD, OUTPUT);
pinMode(RIGHT_BACK, OUTPUT);
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
digitalWrite(RIGHT_BACK, LOW);
servo_pin_14.attach(14);
}
char incomingByte = ' ';
void loop(){
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == 'A') {
Serial.println("TURN LEFT");
turnLeft();
Serial.read();
}
else if (incomingByte == 'D'){
Serial.println("TURN RIGHT");
turnRight();
Serial.read();
}
else if (incomingByte == 'W'){
Serial.println("GO AHEAD");
goAhead();
Serial.read();
}
else if (incomingByte == 'S'){
Serial.println("PARK");
park();
Serial.read();
}
else if (incomingByte == 'X'){
Serial.println("BACK");
back();
Serial.read();
}
else if (incomingByte == 'Q'){
Serial.println("LeftAhead");
goAhead();
turnLeft();
Serial.read();
}
else if (incomingByte == 'E'){
Serial.println("RightAhead");
goAhead();
turnRight();
Serial.read();
}
else if (incomingByte == 'Z'){
Serial.println("LeftBACK");
back();
backLeft();
Serial.read();
}
else if (incomingByte == 'C'){
Serial.println("rightBACK");
back();
backRight();
Serial.read();
}
}
}
void back(){
stopBack();
analogWrite(LEFT_AHEAD,100);
analogWrite(RIGHT_AHEAD,100);
servo_pin_14.write(75);
}
void goAhead(){
stopBack();
analogWrite(LEFT_BACK,110);
analogWrite(RIGHT_BACK,100);
servo_pin_14.write(75);
}
void turnRight(){
stopBack();
analogWrite(RIGHT_BACK,200);
analogWrite(LEFT_BACK,90);
servo_pin_14.write(100 );
delay(100);
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_BACK, LOW);
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
delay(100);
}
void turnLeft(){
stopBack();
analogWrite(LEFT_BACK,200);
analogWrite(RIGHT_BACK,90);
servo_pin_14.write(1 );
delay(100);
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_BACK, LOW);
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
delay(100);
}
void park(){
stopBack();
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
servo_pin_14.write(75 );
}
void stopBack(){
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_BACK, LOW);
}
void backLeft()
{
stopBack();
analogWrite(LEFT_BACK,90);
analogWrite(RIGHT_BACK,200);
servo_pin_14.write(1 );
delay(300);
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_BACK, LOW);
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
delay(100);
}
void backRight()
{
stopBack();
analogWrite(LEFT_BACK,200);
analogWrite(RIGHT_BACK,90);
servo_pin_14.write(1 );
delay(300);
digitalWrite(LEFT_BACK, LOW);
digitalWrite(RIGHT_BACK, LOW);
digitalWrite(LEFT_AHEAD, LOW);
digitalWrite(RIGHT_AHEAD, LOW);
delay(100);
}
网友评论