CODE robot detect obstacle
CODE robot detect obstacle
com/2023/11/12/obstacle-avoiding-robot-using-arduino-uno-and-l293d-with-hc-
sr04-sensor/
#include "AFMotor.h"
#include <Servo.h>
Servo myservo;
void setup() {
Serial.begin(9600); // Initialize serial port
Serial.println("Start");
myservo.attach(10);
myservo.write(90);
long data(){
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
distance = pulseIn (echopin, HIGH);
return distance / 29 / 2;
}
void compareDistance(){
if (distance_L > distance_R){
motor1.run(BACKWARD); // turn it on going left
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
delay(350);
}
else if (distance_R > distance_L){
motor1.run(FORWARD); // the other right
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(350);
}
else{
motor1.run(BACKWARD); // the other way
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(300);
motor1.run(BACKWARD); // turn it on going left
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
delay(500);
}
}
void hc_sr4(){
Serial.println("Stop");
motor1.run(RELEASE); // stopped
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
myservo.write(0);
delay(300);
distance_R = data();
delay(100);
myservo.write(170);
delay(500);
distance_L = data();
delay(100);
myservo.write(90);
delay(300);
compareDistance();
}