SoonXinJia
Published © GPL3+

Line Follower Robot Kit

You'll never know how fun it is if you never try !

IntermediateWork in progress8 hours153
Line Follower Robot Kit

Things used in this project

Hardware components

L298M Motor Drive Board
×1
IR Line Follower Sensor TCRT5000
×1
ZK-2 Robot Kit
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Code

Loop Code

Arduino
Replace the Firmware loop code with this loop code.
void loop() {
  bool irLineFollow1Var = digitalRead(IRLINEFOLLOW1_PIN_OUT);
  bool irLineFollow2Var = digitalRead(IRLINEFOLLOW2_PIN_OUT);
  bool irLineFollow3Var = digitalRead(IRLINEFOLLOW3_PIN_OUT);

  //Serial.print(irLineFollow1Var);Serial.print("\t");Serial.print(irLineFollow2Var); Serial.print("\t");Serial.println(irLineFollow3Var);
  //delay(300);

  if (irLineFollow1Var && !irLineFollow2Var && irLineFollow3Var)
  {
    Serial.println("Straight");
    dcMotorDriver.setMotorA(100, 1);
    dcMotorDriver.setMotorB(100, 1);
  }
  else if (irLineFollow1Var && !irLineFollow2Var && !irLineFollow3Var)
  {
    Serial.println("Left");
    dcMotorDriver.setMotorA(100, 1);
    dcMotorDriver.setMotorB(70, 1);
  }
  else if (!irLineFollow1Var && !irLineFollow2Var && irLineFollow3Var)
  {
    Serial.println("Right");
    dcMotorDriver.setMotorA(70, 1);
    dcMotorDriver.setMotorB(100, 1);
  }
  else if (irLineFollow1Var && irLineFollow2Var && !irLineFollow3Var)
  {
    Serial.println("Strong Left");
    dcMotorDriver.setMotorA(70, 0);
    dcMotorDriver.setMotorB(100, 1);
  }
  else if (!irLineFollow1Var && irLineFollow2Var && irLineFollow3Var)
  {
    Serial.println("Strong Right");
    dcMotorDriver.setMotorA(100, 1);
    dcMotorDriver.setMotorB(70, 0);
  }
  else if (irLineFollow1Var && irLineFollow2Var && irLineFollow3Var)
  {
    Serial.println("Straight");
    dcMotorDriver.setMotorA(100, 1);
    dcMotorDriver.setMotorB(100, 1);
  }
  else
  {
    Serial.println("Stop");
    dcMotorDriver.setMotorA(70, 1);
    dcMotorDriver.setMotorB(70, 1);
  }

Define code

Arduino
Replace the Firmware define code with this define code
#define DCMOTORDRIVER_PIN_ENA  11
#define DCMOTORDRIVER_PIN_INT1  7
#define DCMOTORDRIVER_PIN_INT2  8
#define DCMOTORDRIVER_PIN_ENB 10
#define DCMOTORDRIVER_PIN_INT3  9
#define DCMOTORDRIVER_PIN_INT4  2
#define IRLINEFOLLOW1_PIN_OUT 3
#define IRLINEFOLLOW2_PIN_OUT 4
#define IRLINEFOLLOW3_PIN_OUT 5

Credits

SoonXinJia

SoonXinJia

0 projects • 0 followers
I am student from Multimedia University. I am now in Arduino learning process.

Comments