-
Notifications
You must be signed in to change notification settings - Fork 0
/
hackCode.ino
119 lines (99 loc) · 2.57 KB
/
hackCode.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_MODULE
#include <Dabble.h>
#define motor1_en 10
#define motor2_en 11
#define motor1_dir1 4
#define motor1_dir2 5
#define motor2_dir1 6
#define motor2_dir2 7
// connect bluetooth
// Tx --> 2
// Rx --> 3
void setup()
{
// put your setup code here, to run once:
Serial.begin(250000);
Dabble.begin(38400);
for(unsigned int i=4;i<8;i++)
{
pinMode(i,OUTPUT);
}
pinMode(motor1_en,OUTPUT);
pinMode(motor2_en,OUTPUT);
}
void loop()
{
// put your main code here, to run repeatedly:
Dabble.processInput();
if (GamePad.isUpPressed())
{
Serial.print("UP");
forward();
}
else if (GamePad.isDownPressed())
{
Serial.print("DOWN");
backward();
}
else if (GamePad.isLeftPressed())
{
Serial.print("Left");
left();
}
else if (GamePad.isRightPressed())
{
Serial.print("Right");
right();
}
else
{
Serial.println("strop");
Stop();
}
}
void forward()
{
analogWrite(motor1_en,255);
analogWrite(motor2_en,255);
digitalWrite(motor1_dir1,HIGH);
digitalWrite(motor1_dir2,LOW);
digitalWrite(motor2_dir1,HIGH);
digitalWrite(motor2_dir2,LOW);
}
void backward()
{
analogWrite(motor1_en,255);
analogWrite(motor2_en,255);
digitalWrite(motor1_dir1,LOW);
digitalWrite(motor1_dir2,HIGH);
digitalWrite(motor2_dir1,LOW);
digitalWrite(motor2_dir2,HIGH);
}
void left()
{
analogWrite(motor1_en,255);
analogWrite(motor2_en,255);
digitalWrite(motor1_dir1,LOW);
digitalWrite(motor1_dir2,HIGH);
digitalWrite(motor2_dir1,HIGH);
digitalWrite(motor2_dir2,LOW);
}
void right()
{
analogWrite(motor1_en,255);
analogWrite(motor2_en,255);
digitalWrite(motor1_dir1,HIGH);
digitalWrite(motor1_dir2,LOW);
digitalWrite(motor2_dir1,LOW);
digitalWrite(motor2_dir2,HIGH);
}
void Stop()
{
analogWrite(motor1_en,0);
analogWrite(motor2_en,0);
digitalWrite(motor1_dir1,LOW);
digitalWrite(motor1_dir2,LOW);
digitalWrite(motor2_dir1,LOW);
digitalWrite(motor2_dir2,LOW);
}