ET22BTIT061 – Malav Radia
Practical 8
AIM: Design Obstacle avoidance robot using ultrasonic sensor.
Apparatus: Arduino UNO, Ultrasonic Sensor, Motors, L293D Motor Driver, Virtual
Terminal, Resistors, Supply, Ground.
Tools: Arduino IDA, Proteus
Circuit:
Code:
#define IN1 13
#define IN2 12
#define IN3 7
#define IN4 6
#define EN1 5
#define EN2 4
ET22BTIT061 – Malav Radia
#define trigPin 9 // Ultrasonic sensor trigger pin
#define echoPin 10 // Ultrasonic sensor echo pin
long duration;
int distance;
void setup() {
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(trigPin, OUTPUT); // Trigger pin as output
pinMode(echoPin, INPUT); // Echo pin as input
[Link](9600); // For serial monitor debugging
}
void loop() {
// Ultrasonic sensor distance measurement
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Calculating distance in cm
[Link]("Distance: ");
[Link](distance); // Debugging the distance
if (distance < 20) { // If an obstacle is within 20 cm
stop();
delay(500);
ET22BTIT061 – Malav Radia
turnRight(); // Turn to avoid obstacle
delay(500);
} else {
moveForward(); // No obstacle, move forward
}}
void moveForward() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
void turnRight() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
void turnLeft() {
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
ET22BTIT061 – Malav Radia
void stop() {
digitalWrite(EN1, LOW);
digitalWrite(EN2, LOW);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
Conclusion:
We conclude that the design and implementation of an obstacle avoidance robot using an
ultrasonic sensor, allowing the robot to autonomously detect and avoid obstacles in its
path, enhancing navigation and collision prevention.