0% found this document useful (0 votes)
22 views

Arduino Obstacle Avoidance Line Follower Robot Pro

This document provides instructions to build an Arduino obstacle avoidance line follower robot. It includes a list of supplies, circuit diagram, code explanation, and assembly steps. The robot uses IR sensors to follow a line and an ultrasonic sensor for obstacle avoidance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Arduino Obstacle Avoidance Line Follower Robot Pro

This document provides instructions to build an Arduino obstacle avoidance line follower robot. It includes a list of supplies, circuit diagram, code explanation, and assembly steps. The robot uses IR sensors to follow a line and an ultrasonic sensor for obstacle avoidance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

instructables

Arduino Obstacle Avoidance Line Follower Robot Projects 2021

by MrElectroUino

Arduino Projects: I will teach you how to make an obstacle avoidance line follower robot with Arduino. The Arduino
smart car robot can follow the line with an IR sensor and obstacle avoidance with an ultrasonic sensor.

Supplies:

1. Arduino unoultrasonic sensor Hc-sr04 with case to obstacle avoidance.


2. 2 x Ir Sensor for tracing the line.
3. L293d motor driver shield for controlling the motor.
4. Servo motor SG90.
5. 4 x Bo motor with wheel.
6. Wooden board 20 x 13
7. Jumper wire9v battery

Step 1: Circuit Diagram:

1. First attach a motor driver shield onto the arduino.

Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 1


2. Now connect the bo motor's to the l293d motor driver shield.

Motor 1 to motor driver M1

Motor 2 to motor driver M2


Motor 3 to motor driver M3
Motor 4 to motor driver M4

3. connect the IR sensor to motor driver.

IR sensor OUT pin is connected to motor driver A0 pin.


IR sensor GND pin is connected to motor driver GND pin.
IR sensor VCC pin is connected to motor driver 5v pin.

Do the same for other IR sensor but make sure that OUT pin is connected to motor driver A1.

4. Connect the servo motor to motor driver servo1 slot.

5. Connect ultrasonic sensor to motor driver.

Hc-sr04 TRIG pin to motor driver A2.


Hc-sr04 ECHO pin to motor driver A3.
Hc-sr04 5v pin to motor driver 5v.
Hc-sr04 GND pin to motor driver GND.

*There is a mistake in the youtube video for connecting an ultrasonic sensor.

Now after Doing all the connections, it's time to upload the code.

Connect the Arduino uno to pc via USB cable and open the Arduino IDE, select the Arduino board, and com port from
the tool menu after that upload the given code.

Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 2


Step 2: Coding for Arduino Obstacle Avoidance Line Follower Robot 2021

#include <NewPing.h>

#include <Servo.h>

#include <AFMotor.h>

//hc-sr04 sensor

#define TRIGGER_PIN A2

#define ECHO_PIN A3

#define max_distance 50

//ir sensor

#define irLeft A0

#define irRight A1

//motor

#define MAX_SPEED 200

#define MAX_SPEED_OFFSET 20

Servo servo;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, max_distance);


Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 3
AF_DCMotor motor1(1, MOTOR12_1KHZ);

AF_DCMotor motor2(2, MOTOR12_1KHZ);

AF_DCMotor motor3(3, MOTOR34_1KHZ);

AF_DCMotor motor4(4, MOTOR34_1KHZ);

int distance = 0;

int leftDistance;

int rightDistance;

boolean object;

void setup() {

Serial.begin(9600);

pinMode(irLeft, INPUT);

pinMode(irRight, INPUT);

servo.attach(10);

servo.write(90);

motor1.setSpeed(120);

motor2.setSpeed(120);

motor3.setSpeed(120);

motor4.setSpeed(120);

void loop() {

if (digitalRead(irLeft) == 0 && digitalRead(irRight) == 0 ) {

objectAvoid();

//forword

else if (digitalRead(irLeft) == 0 && digitalRead(irRight) == 1 ) {

objectAvoid();

Serial.println("TL");

//leftturn

moveLeft();
Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 4
moveLeft();

else if (digitalRead(irLeft) == 1 && digitalRead(irRight) == 0 ) {

objectAvoid();

Serial.println("TR");

//rightturn

moveRight();

else if (digitalRead(irLeft) == 1 && digitalRead(irRight) == 1 ) {

//Stop

Stop();

void objectAvoid() {

distance = getDistance();

if (distance <= 15) {

//stop

Stop();

Serial.println("Stop");

lookLeft();

lookRight();

delay(100);

if (rightDistance <= leftDistance) {

//left

object = true;

turn();

Serial.println("moveLeft");

} else {

//right

object = false;

turn();

Serial.println("moveRight");

delay(100);

Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 5


else {

//forword

Serial.println("moveforword");

moveForward();

int getDistance() {

delay(50);

int cm = sonar.ping_cm();

if (cm == 0) {

cm = 100;

return cm;

int lookLeft () {

//lock left

servo.write(150);

delay(500);

leftDistance = getDistance();

delay(100);

servo.write(90);

Serial.print("Left:");

Serial.print(leftDistance);

return leftDistance;

delay(100);

int lookRight() {

//lock right

servo.write(30);

delay(500);

rightDistance = getDistance();

delay(100);

servo.write(90);

Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 6


Serial.print(" ");

Serial.print("Right:");

Serial.println(rightDistance);

return rightDistance;

delay(100);

void Stop() {

motor1.run(RELEASE);

motor2.run(RELEASE);

motor3.run(RELEASE);

motor4.run(RELEASE);

void moveForward() {

motor1.run(FORWARD);

motor2.run(FORWARD);

motor3.run(FORWARD);

motor4.run(FORWARD);

void moveBackward() {

motor1.run(BACKWARD);

motor2.run(BACKWARD);

motor3.run(BACKWARD);

motor4.run(BACKWARD);

void turn() {

if (object == false) {

Serial.println("turn Right");

moveLeft();

delay(700);

moveForward();

delay(800);

moveRight();

delay(900);

if (digitalRead(irRight) == 1) {

loop();

} else {

moveForward();
Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 7
moveForward();

else {

Serial.println("turn left");

moveRight();

delay(700);

moveForward();

delay(800);

moveLeft();

delay(900);

if (digitalRead(irLeft) == 1) {

loop();

} else {

moveForward();

void moveRight() {

motor1.run(BACKWARD);

motor2.run(BACKWARD);

motor3.run(FORWARD);

motor4.run(FORWARD);

void moveLeft() {

motor1.run(FORWARD);

motor2.run(FORWARD);

motor3.run(BACKWARD);

motor4.run(BACKWARD);

Step 3: Watch This Video:

After the code was successfully uploaded.

You need to do two thing.


Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 8
1. Check the motor running direction.

2. Calibrating the both IR sensor by rotating it potentiometer for tracking the black line watch the video if you getting any
problem.

3. Connect the 9v battery and enjoy the Arduino obstacle avoidance line follower robot car.

https://www.youtube.com/watch?v=ZiqAyuLpS3o

Step 4: Subscribe Us on Youtube:

If you like the projects keep support me by subscribing to youtube channel, like, share and comment any doubt.

Have a great day .....!

Topic :)

arduino self driving car 2021 arduino obstacle avoiding car arduino line follower with obstacle avoidance code arduino
line follow robot 2021 arduino make your own tesla

Arduino Obstacle Avoidance Line Follower Robot Projects 2021: Page 9

You might also like