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 days455
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.
Contact
Thanks to Mark Joshua Rodil, Jamaica Kaye Lopez, Peter Arellano, and Carlos Miguel Marabe.

Comments

Please log in or sign up to comment.