#include <NewPing.
h>
int motor_left_f = 5; // Pin in1 of L298
int
motor_left_b = 6; // Pin in2 of L298
int motor_right_f = 10; // Pin in3 of
L298
int motor_right_b = 11; // Pin in4 of L298
int state;
int vSpeed=200;
int
LED = 13;
#define TRIGGER_PIN 12
#define ECHO_PIN 8
#define MAX_DISTANCE
200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup()
{
pinMode(motor_left_f, OUTPUT);
pinMode(motor_left_b, OUTPUT);
pinMode(motor_right_f,
OUTPUT);
pinMode(motor_right_b, OUTPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (sonar.ping_cm() < 50){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
if(Serial.available()
> 0){
state = Serial.read();
Stop();
}
/***********************forward****************************/
if (state == 'F') {
analogWrite(motor_left_f, 200);
analogWrite(motor_left_b,
0);
analogWrite(motor_right_f, 200);
analogWrite(motor_right_b,
0);
}
/***********************backward****************************/
else if (state == 'B') {
analogWrite(motor_left_f, 0);
analogWrite(motor_left_b,
200);
analogWrite(motor_right_f, 0);
analogWrite(motor_right_b,
200);
}
/***************************left*****************************/
else if (state == 'L') {
analogWrite(motor_left_f, 0);
analogWrite(motor_left_b,
0);
analogWrite(motor_right_f, 200);
analogWrite(motor_right_b,
0);
}
/***************************right*****************************/
else if (state == 'R') {
analogWrite(motor_left_f, 200);
analogWrite(motor_left_b,
0);
analogWrite(motor_right_f, 0);
analogWrite(motor_right_b,
0);
}
/***************************forward left*****************************/
else if (state == 'G') {
analogWrite(motor_left_f, 100);
analogWrite(motor_left_b,
0);
analogWrite(motor_right_f, 200);
analogWrite(motor_right_b,
0);
}
/***************************forward rght*****************************/
else if (state == 'I') {
analogWrite(motor_left_f, 200);
analogWrite(motor_left_b,
0);
analogWrite(motor_right_f, 100);
analogWrite(motor_right_b,
0);
}
/************************Stop*****************************/
else if (state == 'P'){
analogWrite(motor_right_f, 0);
analogWrite(motor_right_b,
0);
analogWrite(motor_left_f, 0);
analogWrite(motor_left_b,
0);
}
}
void Stop() {
analogWrite(motor_right_f, 0);
analogWrite(motor_right_b, 0);
analogWrite(motor_left_f, 0);
analogWrite(motor_left_b,
0);
}