-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathFollow_Me_Mode.ino
73 lines (61 loc) · 1.54 KB
/
Follow_Me_Mode.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//Motor A
int motorA1 = 2;
int motorA2 = 4;
int motorAenb = 3;
#define motorArpm 90 //Any value between 0 and 255
//Motor B
int motorB1 = 10;
int motorB2 = 11;
int motorBenb = 9;
#define motorBrpm 100 //Any value between 0 and 255
//Ultrasonic Sensor
const int trigPin = 6;
const int echoPin = 5;
//Define Variables
long duration;
int distance;
void setup(){
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorAenb, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(motorBenb, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop(){
digitalWrite(trigPin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin , LOW);
duration = pulseIn(echoPin , HIGH);
distance = (duration/2) / 28.5;
if(distance < 5)
{
digitalWrite(motorA1, HIGH);
digitalWrite(motorA2, LOW);
analogWrite(motorAenb, motorArpm);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, HIGH);
analogWrite(motorBenb, motorBrpm);
}
if(distance > 5 && distance < 10)
{
analogWrite(motorAenb, 0);
analogWrite(motorBenb, 0);
}
if(distance > 10 && distance < 20){
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, HIGH);
analogWrite(motorAenb, motorArpm);
digitalWrite(motorB1, HIGH);
digitalWrite(motorB2, LOW);
analogWrite(motorBenb, motorBrpm);
}
if(distance > 20)
{
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, HIGH);
analogWrite(motorBenb, motorBrpm);
}
}