Skip to content

Commit 15632df

Browse files
authored
Added Line follower robot code (pranjay-poddar#5093)
* Create main.cpp * Create README.md * Update main.cpp
1 parent fbf9cd0 commit 15632df

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## Line follower bot
2+
3+
This projcets presents the source code of a line follower bot. Loading this code into the memory of microcontroller makes it run crazy after a line.
4+
5+
6+
## Requirements
7+
8+
- Arduino UNO
9+
- DC Motor, 12 V
10+
- Battery holders
11+
- Bridge motors
12+
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
int mr1=8; //motor right 1
2+
int mr2=9; //motor right 2
3+
int ml1=10; //motor left 1
4+
int ml2=11; //motor left 2
5+
int sr=6; //sensor right
6+
int sl=7; //sensor left
7+
int svr=0;
8+
int svl=0;
9+
int led=13;
10+
int enr=3;
11+
int enl=5;
12+
13+
int vspeed=100;
14+
int tspeed=255;
15+
int tdelay=20;
16+
17+
void setup()
18+
{
19+
pinMode(mr1,OUTPUT);
20+
pinMode(mr2,OUTPUT);
21+
pinMode(ml1,OUTPUT);
22+
pinMode(ml2,OUTPUT);
23+
pinMode(led,OUTPUT);
24+
pinMode(sr,INPUT);
25+
pinMode(sl,INPUT);
26+
27+
delay(5000);
28+
}
29+
30+
void loop()
31+
{
32+
svr=digitalRead(sr);
33+
svl=digitalRead(sl);
34+
35+
if(svl==LOW && svr==LOW)
36+
{
37+
forward(); //maju
38+
}
39+
40+
if(svl==HIGH && svr==LOW)
41+
{
42+
left(); //belok kiri
43+
}
44+
45+
if(svl==LOW && svr==HIGH)
46+
{
47+
right(); //belok kanan
48+
}
49+
50+
if(svl==HIGH && svr==HIGH)
51+
{
52+
stop(); //berhenti
53+
}
54+
}
55+
56+
void forward()
57+
{
58+
digitalWrite(mr1,HIGH);
59+
digitalWrite(mr2,LOW);
60+
digitalWrite(ml1,HIGH);
61+
digitalWrite(ml2,LOW);
62+
analogWrite (enr,vspeed);
63+
analogWrite (enl,vspeed);
64+
}
65+
66+
void backward()
67+
{
68+
digitalWrite(mr1,LOW);
69+
digitalWrite(mr2,HIGH);
70+
digitalWrite(ml1,LOW);
71+
digitalWrite(ml2,HIGH);
72+
analogWrite (enr,vspeed);
73+
analogWrite (enl,vspeed);
74+
}
75+
76+
void right()
77+
{
78+
digitalWrite(mr1,LOW);
79+
digitalWrite(mr2,HIGH);
80+
digitalWrite(ml1,HIGH);
81+
digitalWrite(ml2,LOW);
82+
analogWrite (enr,tspeed);
83+
analogWrite (enl,tspeed);
84+
delay(tdelay);
85+
}
86+
87+
void left()
88+
{
89+
digitalWrite(mr1,HIGH);
90+
digitalWrite(mr2,LOW);
91+
digitalWrite(ml1,LOW);
92+
digitalWrite(ml2,HIGH);
93+
analogWrite (enr,tspeed);
94+
analogWrite (enl,tspeed);
95+
delay(tdelay);
96+
}
97+
98+
void stop()
99+
{
100+
analogWrite (enr,0);
101+
analogWrite (enl,0);
102+
}

0 commit comments

Comments
 (0)