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

Line Follower Robot Using Arduino and L298N Module

The document describes how to build a line follower robot using an Arduino, L298N motor driver module, and IR sensors. It provides details on how IR sensors and the motor driver module work and includes the circuit diagram and Arduino code needed to control the robot's movement and make it follow a black line.

Uploaded by

Bizuneh getu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

Line Follower Robot Using Arduino and L298N Module

The document describes how to build a line follower robot using an Arduino, L298N motor driver module, and IR sensors. It provides details on how IR sensors and the motor driver module work and includes the circuit diagram and Arduino code needed to control the robot's movement and make it follow a black line.

Uploaded by

Bizuneh getu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Line Follower Robot Using Arduino And L298N Module

The line follower robot is an automated vehicle that follows a visual black line or path on the
surface. This visual line is a path on which the line follower robot moves. It uses a black line on
a white surface, or you can also adjust it as a white line on a black surface as per your need.

Beginners and students get their first robotic experience with this type of line follower robot. In
this article, we are going to learn how to make a line follower robot using Arduino and the L298N
motor driver module.

In industries, line follower robots are used for guiding the automated production process. They
are also used in restaurants, military applications, delivery services, hotels, bars, etc. are some
of its common applications.

HOW LINE FOLLOWER ROBOT WORKS?


The concept of the line follower robot is related to the transmitting and receiving of light. The
white colour reflects all the light that falls on it whereas the black colour absorbs all the light.

In this line follower robot, we have used IR transmitters and receivers ( also known as
photodiodes). When IR light falls on a white surface, it gets reflected back towards the IR
receiver, generating some voltage changes that are analyzed by the Arduino.

When IR light falls on a black surface, it gets absorbed by the black surface, and no rays are
reflected back thus, the IR receiver doesn’t receive any rays.

In this project, when the IR sensor senses a white surface, an Arduino gets HIGH as input, and
when it senses a black line, an Arduino gets LOW as input. Based on these inputs, an Arduino
Uno provides the proper output to control the line follower.

L298N MODULE
IR sensor consists of an Infrared LED and a Photodiode. An IR LED is a special-purpose LED,
that emits infrared rays ranging from 700 nm to 1 mm wavelength. Such types of rays are
invisible to our eyes. In nutshell, a photodiode or IR Receiver LED detects infrared rays.

Datasheet

Motor controller L298N, drives 2 DC motors


Operating Voltage 5- 35V
Logic voltage 4.5 – 7 V
Max current 2A per channel
Voltage Regulator 78M05
Module dimensions 43 x 43 x 28 mm
Junction operating temperature -25 to 130 o Celsius

HOW IR SENSOR MODULE WORKS


When we connect the InfraRed sensor module to the 5v power supply. Infrared LED starts
emitting infrared rays. These infrared rays reach to object’s surface and this radiation gets
reflected back to the IR receiver. The Photodiode or IR receiver detects the infrared light and
produces output accordingly.

COMPONENTS REQUIRED
 Arduino Board (UNO)

 USB –A to micro-USB cable

 Car chassis

 L298 motor driver module

 IR sensor module

 12V Battery

 On-Off- Switch

 DC Female Connector Jack

 Connecting wires

 Soldering iron

 Solder wire

 Hot Melt Glue Gun

Software Required

 Arduino IDE

LINE FOLLOWER ROBOT CIRCUIT DIAGRAM


Follow this table in order to make your connections.

L298N driver Pins Arduino Pins


ENA jumper
IN1 D9
IN2 D6
IN3 D5
IN4 D3
ENB Jumper
Infrared Sensor pins Arduino pins
Vcc 5v
GND GND
Right IR sensor OUT D13
Left IR sensor OUT D12

For L298N motor driver module, motors are connected to the motor terminals of the motor driver
module. The motor driver has another 3 terminals, in which one is 12Volt connected to the
battery. The GND terminal is connected to the battery’s negative terminal and it is also
connected to the Arduino board GND pin and 5v is connected to 5v of the Arduino board.
ARDUINO CODE FOR LINE FOLLOWER ROBOT
#define MOTOR_SPEED 60

int mot1=9;

int mot2=6;

int mot3=5;

int mot4=3;

int left=13;

int right=12;

int Left=0;

int Right=0;

void LEFT (void);

void RIGHT (void);

void STOP (void);

void setup() {

pinMode(mot1,OUTPUT);

pinMode(mot2,OUTPUT);

pinMode(mot3,OUTPUT);

pinMode(mot4,OUTPUT);

pinMode(left,INPUT);

pinMode(right,INPUT);

digitalWrite(left,HIGH);

digitalWrite(right,HIGH);

}
void loop() {

analogWrite(mot1,MOTOR_SPEED);

analogWrite(mot2,0);

analogWrite(mot3,MOTOR_SPEED);

analogWrite(mot4,0);

while(1) {

Left=digitalRead(left);

Right=digitalRead(right);

if((Left==0 && Right==1)==1)

LEFT();

else if((Right==0 && Left==1)==1)

RIGHT();

void LEFT (void) {

analogWrite(mot3,0);

analogWrite(mot4,30);

while(Left==0) {

Left=digitalRead(left);

Right=digitalRead(right);

if(Right==0) {

int lprev=Left;

int rprev=Right;
STOP();

while(((lprev==Left)&&(rprev==Right))==1) {

Left=digitalRead(left);

Right=digitalRead(right);

analogWrite(mot1,MOTOR_SPEED);

analogWrite(mot2,0);

analogWrite(mot3,MOTOR_SPEED);

analogWrite(mot4,0);

void RIGHT (void) {

analogWrite(mot1,0);

analogWrite(mot2,30);

while(Right==0) {

Left=digitalRead(left);

Right=digitalRead(right);

if(Left==0) {

int lprev=Left;

int rprev=Right;

STOP();

while(((lprev==Left)&&(rprev==Right))==1) {
Left=digitalRead(left);

Right=digitalRead(right);

analogWrite(mot3,MOTOR_SPEED);

analogWrite(mot4,0);

analogWrite(mot1,MOTOR_SPEED);

analogWrite(mot2,0);

void STOP (void) {

analogWrite(mot1,0);

analogWrite(mot2,0);

analogWrite(mot3,0);

analogWrite(mot4,0);

TROUBLESHOOTING
Robot is moving too fast?

For this change value of motor speed in the code. Note that 1 is the minimum value and 255 is
the maximum speed.

No power supply?
Try changing your batteries. Ensure that you must supply 12v to the L298 Motor Driver module.
A Voltage rating less than this will not work.

Project not working?


Ensure that the circuit you have made is according to the circuit diagram. Check for loose
connections. Cross-check for motor connections.

Motors are rotating in opposite direction?


For this, reverse the terminals of the motor connecting the Motor driver module.

IR sensitivity issue?

There is a potentiomenter on the IR sensor module. Adjust with the help of screwdriver as per
your requirement.

You might also like