Arduino Line Follower Robot Car
Guys this is the rough Article for those who come from MAKE DIY YouTube channel.
This Link will be replaced with the original full article when the full detailed article completes.
Schematics:
Code:
Hey Guys this is not the Final Code. I will publish full detailed article in a week. Check back our website later.
/* Code Name: Arduino Line Follower Robot Car Code URI: https://circuitbest.com/category/arduino-projects/ Author: Make DIY Author URI: https://circuitbest.com/author/admin/ Description: This program is used to make Arduino Line Follower Robot Car. Note: You cna use any value between 0 to 255 for M1_Speed, M2_Speed, LeftRotationSpeed, RightRotationSpeed. Here 0 means Low Speed and 255 is for High Speed. Version: 1.0 License: Remixing or Changing this Thing is allowed. Commercial use is not allowed. */ #define in1 9 #define in2 8 #define in3 7 #define in4 6 #define enA 10 #define enB 5 int M1_Speed = 80; // speed of motor 1 int M2_Speed = 80; // speed of motor 2 int LeftRotationSpeed = 250; // Left Rotation Speed int RightRotationSpeed = 250; // Right Rotation Speed void setup() { pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(enA,OUTPUT); pinMode(enB,OUTPUT); pinMode(A0, INPUT); // initialize Left sensor as an input pinMode(A1, INPUT); // initialize Right sensor as an input } void loop() { int LEFT_SENSOR = digitalRead(A0); int RIGHT_SENSOR = digitalRead(A1); if(RIGHT_SENSOR==0 && LEFT_SENSOR==0) { forward(); //FORWARD } else if(RIGHT_SENSOR==0 && LEFT_SENSOR==1) { right(); //Move Right } else if(RIGHT_SENSOR==1 && LEFT_SENSOR==0) { left(); //Move Left } else if(RIGHT_SENSOR==1 && LEFT_SENSOR==1) { Stop(); //STOP } } void forward() { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enA, M1_Speed); analogWrite(enB, M2_Speed); } void backward() { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enA, M1_Speed); analogWrite(enB, M2_Speed); } void right() { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enA, LeftRotationSpeed); analogWrite(enB, RightRotationSpeed); } void left() { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enA, LeftRotationSpeed); analogWrite(enB, RightRotationSpeed); } void Stop() { digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW); }