Maria Angeline Adajar
Published © Apache-2.0

Arduino Line Follower Car

Build a smart line-following robot using Arduino, IR sensors, and motor control—learn key robotics concepts in a fun, hands-on way!

IntermediateFull instructions provided2 days827
Arduino Line Follower Car

Things used in this project

Story

Read more

Code

Line Follower Arduino

C/C++
Using Arduino IDE
int IRSensorRight = A0;
int IRSensorLeft = A1;

int MOTORLEFT[2] = {2,3};
int MOTORRIGHT[2] = {4,5};

void setup() {
  Serial.begin(9600);
  pinMode(MOTORLEFT[0], OUTPUT);
  pinMode(MOTORLEFT[1], OUTPUT);
  pinMode(MOTORRIGHT[0], OUTPUT);
  pinMode(MOTORRIGHT[1], OUTPUT); 
  
  digitalWrite(MOTORLEFT[0], LOW);
  digitalWrite(MOTORRIGHT[0], LOW);
  analogWrite(MOTORLEFT[1], 0);
  analogWrite(MOTORRIGHT[1], 0);
  
  pinMode(IRSensorRight, INPUT_PULLUP);
  pinMode(IRSensorLeft, INPUT_PULLUP);
}

void loop() {
  if(digitalRead(IRSensorRight)){
      turnLeft();
      //delay(500);
  } else if(digitalRead(IRSensorLeft)){
      turnRight();
      //delay(500);
  } else {
    moveForward();
  }
}

void moveForward(){
  Serial.println("forward");
  digitalWrite(MOTORRIGHT[0], HIGH);
  digitalWrite(MOTORLEFT[0], HIGH);
  analogWrite(MOTORRIGHT[1], 150);
  analogWrite(MOTORLEFT[1], 150);
}

void turnLeft(){
  Serial.println("left");
  digitalWrite(MOTORRIGHT[0], LOW);
  digitalWrite(MOTORLEFT[0], HIGH);
  analogWrite(MOTORRIGHT[1], 200);
  analogWrite(MOTORLEFT[1], 190);
  delay(200);
}

void turnRight(){
  Serial.println("right");
  digitalWrite(MOTORRIGHT[0], HIGH);
  digitalWrite(MOTORLEFT[0], LOW);
  analogWrite(MOTORRIGHT[1], 190);
  analogWrite(MOTORLEFT[1], 200);
  delay(200);
}

Credits

Maria Angeline Adajar
3 projects • 1 follower
I'm a Computer Engineering student passionate about hardware-software integration, data analytics, and embedded systems.
Thanks to Mark Joshua Rodil, Jamaica Kaye Lopez, Peter Arellano, and Carlos Miguel Marabe.

Comments