plz help me to make self driving robot car
// auto mode designed by Imesh Dilshan Perera
#include <Ultrasonic.h>
Ultrasonic u = Ultrasonic(3,2);
#include <Servo.h>
Servo s = Servo();
void setup() {
// put your setup code here, to run once:
pinMode(5,OUTPUT); //ENB
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT); //ENA
s.write(90);
delay(500);
Serial.begin(9600); //arduino board to laptop reading speed by bits
}
void loop() {
// put your main code here, to run repeatedly:
int d = u.read(); //read ultrasonic signals always and store as d
if(d>10){
digitalWrite(6,LOW); // forward car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}// d>10 is ended
if(d<10){
digitalWrite(6,LOW); //stop car
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
analogWrite(5,200);
analogWrite(10,200);
delay(1000);
s.write(0);
delay(500);
if(d>10){
digitalWrite(6,LOW); // turn left car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
analogWrite(5,140);
analogWrite(10,140);
delay(400);
digitalWrite(6,LOW); // forward car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}//d for servo 0 is ended
else{
s.write(45);
delay(500);
if(d>10){
digitalWrite(6,LOW); // turn left car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
analogWrite(5,140);
analogWrite(10,140);
delay(400);
digitalWrite(6,LOW); // forward car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}//d for servo 45 is ended
else {
s.write(90);
delay(500);
if(d>10){
digitalWrite(6,LOW); // forward car
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}//d for servo 90 is ended
else{
s.write(135);
delay(500);
if(d>10){
digitalWrite(6,LOW); // turn left car
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,140);
analogWrite(10,140);
delay(400);
digitalWrite(6,LOW); // forward car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}//d for servo 135 is ended
else{
s.write(180);
delay(500);
if(d>10){
digitalWrite(6,LOW); // turn right car
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,140);
analogWrite(10,140);
delay(400);
digitalWrite(6,LOW); // forward car
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
analogWrite(5,200);
analogWrite(10,200);
}//d for servo 135 is ended
else{
digitalWrite(6,HIGH); // turn BACK car
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
analogWrite(5,140);
analogWrite(10,140);
delay(1000);
}//else for backward
}//else for servo 180
}//else for servo 135
}//else for servo 90
}//else for servo 45
}// d<10 is ended
}// void loop ended