sriharshamallavarapu
Published © Apache-2.0

Obstacle Avoiding Robot

A robot that avoids obstacles.a concept used in self driving cars

BeginnerFull instructions provided1,424
Obstacle Avoiding Robot

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Dual H-Bridge motor drivers L298
SparkFun Dual H-Bridge motor drivers L298
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1
9V battery (generic)
9V battery (generic)
×1
Geared DC Motor, 12 V
Geared DC Motor, 12 V
×2

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

circuit diagram

Code

code

C/C++
int L1 = 6;
int L2 = 7;
int R1 = 5;
int R2 = 4;


int trigPin= 2;    
int echoPin= 3;   
long duration, dist, average;   
long aver[3];   //array for averagh(servoPin);  

void setup() 
{
  pinMode(L1, OUTPUT);// see the program here
  pinMode(L2, OUTPUT);// it works welll
  pinMode(R1, OUTPUT);// did u make this code
  pinMode(R2, OUTPUT); // put your setup code here, to run once:

digitalWrite(L1, LOW);
 digitalWrite(L2, LOW);
 digitalWrite(R1, LOW);
 digitalWrite(R2, LOW);

   pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);

Serial.begin(9600);
Serial.write("Arduino has successfully started");

}

void front(){
  digitalWrite(L1, HIGH);
  digitalWrite(L2, LOW);
  digitalWrite(R1, LOW);
  digitalWrite(R2, HIGH);  
}

void back(){
  digitalWrite(L1, LOW);
  digitalWrite(L2, HIGH);
  digitalWrite(R1, HIGH);
  digitalWrite(R2, LOW);  
}


void right(){
  digitalWrite(L1, HIGH);
  digitalWrite(L2, LOW);
  digitalWrite(R1, HIGH);
  digitalWrite(R2, LOW);    
}
void measure() {  
 digitalWrite(10,HIGH);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
dist = (duration/2) / 29.1;    //obtain distance
}


void loop() {


  for (int i=0;i<=2;i++) {   //average distance
    measure();               
   aver[i]=dist;            
    delay(10);              //delay between measurements
  }
 dist=(aver[0]+aver[1]+aver[2])/3;    


Serial.print(dist);



if (dist <  20 ){
  
  front();
}

if (dist > 20){
  
  right();
}
if ( dist >
  
}

Credits

sriharshamallavarapu
3 projects • 1 follower
Contact

Comments

Please log in or sign up to comment.