1
2#include <nRF24L01.h>
3#include <RF24.h>
4#include <SPI.h>
5#include <Servo.h>
6
7int RightMotorF = 2;
8int RightMotorB = 3;
9int LeftMotorF = 4;
10int LeftMotorB = 5;
11int laser = 8;
12Servo turret1;
13Servo turret2;
14int pos1 = 90;
15int pos2 = 90;
16RF24 radio(9, 10);
17const uint64_t pipe = 0xE6E6E6E6E6E6;
18char data[20] = "";
19
20void setup() {
21
22 radio.begin();
23 radio.openReadingPipe(1, pipe);
24 radio.startListening();
25
26 turret1.attach(6);
27 turret2.attach(7);
28
29 pinMode(RightMotorB, OUTPUT);
30 pinMode(LeftMotorB, OUTPUT);
31 pinMode(RightMotorF, OUTPUT);
32 pinMode(LeftMotorF, OUTPUT);
33
34 pinMode(laser, OUTPUT);
35}
36void loop() {
37 String msg = "";
38 if ( radio.available() )
39 {
40 radio.read( data, sizeof(data) );
41 Serial.println(data);
42 msg = data;
43
44 if (msg == "forward")
45 {
46 digitalWrite(RightMotorB, HIGH);
47 digitalWrite(LeftMotorB, HIGH);
48 digitalWrite(RightMotorF, LOW);
49 digitalWrite(LeftMotorF, LOW);
50
51 }
52 else if (msg == "backward")
53 {
54 digitalWrite(RightMotorB, LOW);
55 digitalWrite(LeftMotorB, LOW);
56 digitalWrite(RightMotorF, HIGH);
57 digitalWrite(LeftMotorF, HIGH);
58 }
59 else if (msg == "left")
60 {
61 digitalWrite(RightMotorB, LOW);
62 digitalWrite(LeftMotorB, HIGH);
63 digitalWrite(RightMotorF, LOW);
64 digitalWrite(LeftMotorF, LOW);
65 }
66 else if (msg == "right")
67 {
68 digitalWrite(RightMotorB, HIGH);
69 digitalWrite(LeftMotorB, LOW);
70 digitalWrite(RightMotorF, LOW);
71 digitalWrite(LeftMotorF, LOW);
72 }
73 else if (msg == "rightturret")
74 {
75 pos1++;
76 }
77 else if (msg == "leftturret") {
78 pos1--;
79 }
80 else if (msg == "up")
81 {
82 pos2++;
83 }
84 else if (msg == "down") {
85 pos2--;
86 }
87 else if (msg == "shot") {
88 digitalWrite(laser, HIGH);
89 delay(50);
90 digitalWrite(laser, LOW);
91 delay(50);
92 }
93 else if (msg == "analgobut")
94 {
95 digitalWrite(RightMotorB, LOW);
96 digitalWrite(LeftMotorB, LOW);
97 digitalWrite(RightMotorF, LOW);
98 digitalWrite(LeftMotorF, LOW);
99 }
100
101 turret1.write(pos1);
102 turret2.write(pos2);
103 }
104}