Line Tracking Sensor Module with Arduino

arduino logo

Welcome to the World of Sensors and Modules with Arduino!

The Line Tracking Sensor Module gives our robotics projects the ability to track and follow lines or paths accurately. If you draw a line and place the robot so that the sensor is directly above the line, the robot can follow the path of the line. In this sensors and modules guide, we’ll explore its working principle, key features, applications, and how it can enhance your Arduino projects.

If you’re new to Arduino programming, please read our Getting Started with Arduino guides, they are designed for beginners to learn the fundamental basics of Arduino.

How the Line Tracking Sensor Module Works

The line tracking sensor module employs sensors to emit infrared light onto the surface and measure the intensity of reflected light. When positioned over a contrasting surface, such as a line on a reflective background, the intensity of reflected light changes. The module’s output signal, accessible via the “S” pin, varies based on the detected intensity of reflected infrared light. By analyzing the output signal, the Arduino can determine the presence and position of the line relative to the sensor’s location.

Features and Specifications:
  • Infrared Sensors: Utilizes infrared (IR) sensors to detect contrasting surfaces, such as lines or paths, on a reflective surface.
  • Onboard LED: The LED triggers when no line is detected.
  • Adjustable Sensitivity: Features adjustable sensitivity controls to fine-tune the module.
  • Analog or Digital Output: Offers both analog and digital output signals to indicate the presence of a line.
  • Operating Voltage: 3.3V to 5V
  • Operating Current: 20mA @ 5V
  • Operating Temperature Range: 0C ~ + 50C
  • Module Size: 48×10.5mm
  • Compatibility: This module is also compatible with other devices like the Raspberry Pi, ESP32, and ESP8266 etc…

Necessary Equipment:

  • Arduino (e.g., Arduino Uno)
  • Line Tracking Sensor Module
  • Jumper wires
  • Breadboard (optional)

Pin Configuration

Connecting the Line Tracking Sensor Module to an Arduino is fairly simple. The connections are as follows:

  • G on the Line Tracking Sensor Module to GND on the Arduino.
  • V+ on the Line Tracking Sensor Module to 5V on the Arduino.
  • S on the Line Tracking Sensor Module to Digital Pin 2 on the Arduino.

Pin labels may vary.

Line Tracking Sensor Module with Arduino Diagram

KY-033 Line Tracking Sensor Module Fritzing Part is created by and published under Creative Commons Attribution-ShareAlike 4.0 International license

Arduino Code Example

// Define digital signal pin
const int signalPin = 2;

void setup() {
  // Initialize serial communication for debugging
  // Set signal pin as input
  pinMode(signalPin, INPUT);

void loop() {
  // Read sensor value
  int sensorValue = digitalRead(signalPin);
  // Print sensor value
  Serial.print("Sensor Value: ");

  // Add logic to print presence or absence of line
  if (sensorValue == HIGH){
    Serial.println("Line Detected");
    Serial.println("No Line Detected");
  // You can add a control algorithm to steer the robot along the line here
  delay(100); // Add a short delay for stability

Breaking Down the Code

Pin Declaration
  • Defines a constant integer variable to represent the digital signal pin connected to the line tracking module.
Setup Function
  • Initializes serial communication at a specified baud rate for debugging purposes.
  • Configures the signal pin as an input pin to receive digital signals from the line tracking module.
Loop Function
  • Reads the digital signal from the signal pin and stores it in a variable.
  • Prints the value of the sensor reading to the Serial Monitor for real-time monitoring.
  • Implements conditional logic to determine if a line is detected based on the sensor reading.
  • Delays the program execution for a short duration to stabilize the loop.

This code structure allows for continuous monitoring of the line tracking module’s digital output signal, providing feedback on whether a line is detected or not. Adjustments or additions to the logic within the loop function can be made to incorporate control algorithms for guiding a robot along the line.

Sensitivity Adjustment

The trim pot (trimmer potentiometer) on the line tracking sensor module is typically used for sensitivity adjustment. Here’s how it works and its purpose:

  • Sensitivity Adjustment: The trim pot allows you to adjust the sensitivity of the line tracking module’s sensors to better detect variations in the surface, such as the contrast between a line and its background. By turning the trim potentiometer, you can fine-tune the threshold at which the module considers a surface to be a line or not.

  • Optimization for Different Surfaces: Different surfaces may reflect infrared light differently, affecting the module’s ability to detect lines accurately. The trim potentiometer enables you to optimize the module’s sensitivity for various surfaces, ensuring reliable performance across different environments.

  • Calibration: In some cases, the trim potentiometer is used for calibration purposes. By adjusting the trim pot, you can calibrate the module to work optimally with specific lighting conditions or surface materials, enhancing its effectiveness in line tracking applications.

Overall, the trim potentiometer adds flexibility to the line tracking module, allowing you to customize its sensitivity and performance to suit your specific project requirements. Adjusting the trim potentiometer enables you to achieve precise line detection and tracking, improving the accuracy and reliability of your robotics or automation applications.

Applications and Usage Scenarios

Line Following Robots

Suitable for constructing line-following robots that navigate predefined paths or courses autonomously.

Automated Guided Vehicles (AGVs)

Used in industrial settings to guide AGVs along designated routes in warehouses, factories, or assembly lines.

Hobbyist and DIY Projects

Popular choice for hobbyists and DIY enthusiasts interested in building robotic vehicles, automated lawn mowers, or home automation systems.


In this sensors and modules guide, we explained the functionality of the Line Tracking Sensor, exploring its working principles, and demonstrating how to interface it with an Arduino for practical applications. The line tracking sensor offers precise line detection and tracking capabilities. Whether you’re building a line-following robot, an automated guided vehicle (AGV), this module provides the solution for a wide range of robotics and automation applications. With its compact design, adjustable sensitivity, and compatibility with Arduino, the line tracking module empowers robotics enthusiasts, educators, and hobbyists to bring their projects to life with ease.

Discover the endless possibilities for Arduino projects with more of our Sensors and Modules guides.

Luke Barber

Hello, fellow tech enthusiasts! I'm Luke, a passionate learner and explorer in the vast realms of technology. Welcome to my digital space where I share the insights and adventures gained from my journey into the fascinating worlds of Arduino, Python, Linux, Ethical Hacking, and beyond. Armed with qualifications including CompTIA A+, Sec+, Cisco CCNA, Unix/Linux and Bash Shell Scripting, JavaScript Application Programming, Python Programming and Ethical Hacking, I thrive in the ever-evolving landscape of coding, computers, and networks. As a tech enthusiast, I'm on a mission to simplify the complexities of technology through my blogs, offering a glimpse into the marvels of Arduino, Python, Linux, and Ethical Hacking techniques. Whether you're a fellow coder or a curious mind, I invite you to join me on this journey of continuous learning and discovery.

2 thoughts on “Line Tracking Sensor Module with Arduino

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights