//Ultrasonic Sensors
int TrigPinLeft = 13;
int TrigPinFront = 12;
int TrigPinRight = 2;
int EchoPinLeft = 5;
int EchoPinFront = 4;
int EchoPinRight = 3;
long durationLeft, distanceLeft;
long durationFront, distanceFront;
long durationRight, distanceRight;
//L298N motor and DC motor
int MotorLeftForward = 10;
int MotorLeftBackward = 9;
int MotorRightForward = 8;
int MotorRightBackward = 7;




void setup() {
  // put your setup code here, to run once:
//US
pinMode(TrigPinFront, OUTPUT);
pinMode(TrigPinLeft, OUTPUT);
pinMode(TrigPinRight, OUTPUT);
pinMode(EchoPinFront, INPUT);
pinMode(EchoPinLeft, INPUT);
pinMode(EchoPinRight, INPUT);

//Motor
pinMode(MotorLeftForward, OUTPUT);
pinMode(MotorLeftBackward, OUTPUT);
pinMode(MotorRightForward, OUTPUT);
pinMode(MotorRightBackward, OUTPUT);



Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

//turning ON/OFF transmitter
digitalWrite(TrigPinLeft,LOW);
delayMicroseconds(2);
digitalWrite(TrigPinLeft,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPinLeft,LOW);

//measuring the distance
durationLeft = pulseIn(EchoPinLeft,HIGH);
distanceLeft = durationLeft*0.034/2;
//speed = distance/time
//speed = distance/duration
//0.034/2 = distance/duration
//distance = duration*0.034/2


//turning ON/OFF transmitter
digitalWrite(TrigPinFront,LOW);
delayMicroseconds(2);
digitalWrite(TrigPinFront,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPinFront,LOW);

//measuring the distance
durationFront = pulseIn(EchoPinFront,HIGH);
distanceFront = durationFront*0.034/2;
//speed = distance/time
//speed = distance/duration
//0.034/2 = distance/duration
//distance = duration*0.034/2

//turning ON/OFF transmitter
digitalWrite(TrigPinRight,LOW);
delayMicroseconds(2);
digitalWrite(TrigPinRight,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPinRight,LOW);

//measuring the distance
durationRight = pulseIn(EchoPinRight,HIGH);
distanceRight = durationRight*0.034/2;
//speed = distance/time
//speed = distance/duration
//0.034/2 = distance/duration
//distance = duration*0.034/2
//==========================================

if (distanceFront>15) {
//Front
digitalWrite(MotorLeftForward, HIGH);
digitalWrite(MotorLeftBackward, LOW);
digitalWrite(MotorRightForward, HIGH);
digitalWrite(MotorRightBackward, LOW);
}

else if ((distanceFront<=15)&((distanceLeft)>(distanceRight))) {
//Go left
digitalWrite(MotorLeftForward, LOW);
digitalWrite(MotorLeftBackward, HIGH);
digitalWrite(MotorRightForward, HIGH);
digitalWrite(MotorRightBackward, LOW);

}
else {
{
//OFF
digitalWrite(MotorLeftForward, LOW);
digitalWrite(MotorLeftBackward, LOW);
digitalWrite(MotorRightForward, LOW);
digitalWrite(MotorRightBackward, LOW);
}



}
}