Devices & Components
Arduino Uno Rev3
SparkFun RedBot Sensor - Line Follower
Jumper wires (generic)
Solderless Breadboard Half Size
Dual H-Bridge motor drivers L298
DC Motor, 12 V
Software & Tools
Arduino IDE
Project description
Code
Code
arduino
1#define LS1 A3 2#define LS2 A2 3#define RS1 A1 4#define RS2 A0 5#define LM1 8 6#define LM2 9 7#define RM1 10 8#define RM2 11 9 10 11 12 13void setup() 14{ 15 pinMode(LS1, INPUT); 16 pinMode(LS2, INPUT); 17 18 pinMode(RS1, INPUT); 19 pinMode(RS2, INPUT); 20 21 pinMode(LM1, OUTPUT); 22 pinMode(LM2, OUTPUT); 23 pinMode(RM1, OUTPUT); 24 pinMode(RM2, OUTPUT); 25 26 digitalWrite(LM1,0); 27 digitalWrite(LM2,0); 28 digitalWrite(RM1,0); 29 digitalWrite(RM2,0); 30 31delay(5000); 32} 33 34 35 36 37 38int left() 39{ 40 if(digitalRead(LS1)||digitalRead(LS2)) 41 return(0); 42 else 43 return(1); 44} 45int right() 46{ 47 if(digitalRead(RS1)||digitalRead(RS2)) 48 return(0); 49 else 50 return(1); 51} 52void loop() 53{ 54if(left()&&right()) 55{ 56 digitalWrite(LM1,1); 57 digitalWrite(LM2,0); 58 digitalWrite(RM1,1); 59 digitalWrite(RM2,0); 60 61} 62else if ((left()==0)&&(right()==1)) 63{ 64 digitalWrite(LM1,1); 65 digitalWrite(LM2,0); 66 digitalWrite(RM1,0); 67 digitalWrite(RM2,0); 68} 69else if ((left()==1)&&(right()==0)) 70{ 71 digitalWrite(LM1,0); 72 digitalWrite(LM2,0); 73 digitalWrite(RM1,1); 74 digitalWrite(RM2,0); 75} 76else 77{ 78 digitalWrite(LM1,0); 79 digitalWrite(LM2,0); 80 digitalWrite(RM1,0); 81 digitalWrite(RM2,0); 82} 83 84}
Code
Code
arduino
1#define LS1 A3 2#define LS2 A2 3#define RS1 A1 4#define RS2 A0 5 6#define LM1 8 7#define LM2 9 8#define RM1 10 9#define RM2 10 11 11 12 13 14 15void setup() 16{ 17 pinMode(LS1, INPUT); 18 pinMode(LS2, 19 INPUT); 20 21 pinMode(RS1, INPUT); 22 pinMode(RS2, INPUT); 23 24 pinMode(LM1, 25 OUTPUT); 26 pinMode(LM2, OUTPUT); 27 pinMode(RM1, OUTPUT); 28 pinMode(RM2, 29 OUTPUT); 30 31 digitalWrite(LM1,0); 32 digitalWrite(LM2,0); 33 digitalWrite(RM1,0); 34 35 digitalWrite(RM2,0); 36 37delay(5000); 38} 39 40 41 42 43 44int left() 45{ 46 47 if(digitalRead(LS1)||digitalRead(LS2)) 48 return(0); 49 else 50 return(1); 51} 52int 53 right() 54{ 55 if(digitalRead(RS1)||digitalRead(RS2)) 56 return(0); 57 else 58 59 return(1); 60} 61void loop() 62{ 63if(left()&&right()) 64{ 65 digitalWrite(LM1,1); 66 67 digitalWrite(LM2,0); 68 digitalWrite(RM1,1); 69 digitalWrite(RM2,0); 70 71} 72else 73 if ((left()==0)&&(right()==1)) 74{ 75 digitalWrite(LM1,1); 76 digitalWrite(LM2,0); 77 78 digitalWrite(RM1,0); 79 digitalWrite(RM2,0); 80} 81else if ((left()==1)&&(right()==0)) 82{ 83 84 digitalWrite(LM1,0); 85 digitalWrite(LM2,0); 86 digitalWrite(RM1,1); 87 88 digitalWrite(RM2,0); 89} 90else 91{ 92 digitalWrite(LM1,0); 93 digitalWrite(LM2,0); 94 95 digitalWrite(RM1,0); 96 digitalWrite(RM2,0); 97} 98 99}
Downloadable files
Code and Schematic :
https://github.com/sairushan/Line-follower
Code and Schematic :
https://github.com/sairushan/Line-follower
Comments
Only logged in users can leave comments