Line Follower Robot Using Arduino
If- IR Photodiode Sensor
- Arduino
- LM741 op-amp
- Resistor
- L293D Motor Driver
- Motors
- Connecting Wires
- Chassis Of Toy Car
//sensor pins const int IR0 = 2; |
const int IR1 = 3; |
const int IR2 = 4; |
const int IR3 = 5; |
const int IR4 = 6; |
const int IR5 = 7; |
//Motor
control pins- |
//left
motor- MOT0 & MOT1 |
//right
motor- MOT2 & MOT3 |
const int MOT0 = 9; |
const int MOT1 = 8; |
const int MOT2 = 10; |
const int MOT3 = 11; |
void setup() { |
pinMode(MOT0,OUTPUT); |
pinMode(MOT1,OUTPUT); |
pinMode(MOT2,OUTPUT); |
pinMode(MOT3,OUTPUT); |
// initialize the
serial communications: |
//Serial.begin(115200); |
} |
void loop() { |
int S0 = digitalRead(IR0); |
int S1 = digitalRead(IR1); |
int S2 = digitalRead(IR2); |
int S3 = digitalRead(IR3); |
int S4 = digitalRead(IR4); |
int S5 = digitalRead(IR5); |
// print the sensor
values: |
//Conditions to
drive line folower appropriately |
if (S0==0 && S1==0 && S2==0 && S3==0 && S4==0 && S5==0) { |
//stop |
digitalWrite(MOT0,LOW); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,LOW); |
} else if (S0==1 && S1==1 && S2==1 && S3==1 && S4==1 && S5==1) { |
//stop |
digitalWrite(MOT0,LOW); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,LOW); |
} else if (S2==0 && S3==0) { |
//if
two sensors at the middle reads 0, go straight |
digitalWrite(MOT0,HIGH); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,HIGH); |
} else if (S1==0 && S2==0) { |
//follower
moving towads right, stop left motor |
//digitalWrite(MOT0,LOW); |
analogWrite(MOT0, 125); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,HIGH); |
} else if (S0==0 && S1==0) { |
//follower
moving towads right, stop left motor |
digitalWrite(MOT0,LOW); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,HIGH); |
} else if (S3==0 && S4==0) { |
//follower
moving towads left, stop right motor |
digitalWrite(MOT0,HIGH); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
//digitalWrite(MOT3,LOW); |
analogWrite(MOT3, 125); |
} else if (S4==0 && S5==0) { |
//follower
moving towads left, stop right motor |
digitalWrite(MOT0,HIGH); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,LOW); |
} else if ( S4==1 && S5==0) { |
//follower
moving towads left, stop right motor |
digitalWrite(MOT0,HIGH); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,LOW); |
} else if (S0==0 && S1==1) { |
//follower
moving towads right, stop left motor |
digitalWrite(MOT0,LOW); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,HIGH); |
} else { |
//stop
follower |
digitalWrite(MOT0,LOW); |
digitalWrite(MOT1,LOW); |
digitalWrite(MOT2,LOW); |
digitalWrite(MOT3,LOW); |
} |
} // end of the code |
Comments
Post a Comment
If you have any doubts ,Please let me know.