RX_433Mhz_Robot_SepVer_Main.ino


1
/* The code was made by Tamás Imets for an Arduino UNO project
2
   This code controls the BB-8 Droid from the Star Wars: The Force Awakens,
3
   and works with Bluetooth RC Car application, using a HC-06 seriaé bluetooth module
4
   See more details at instructables.com/member/Imetomi
5
   Friday,  December 25, 2015
6
*/
7
//#include <Servo.h>
8
#include <SoftwareSerial.h>
9
#include "DualVNH5019MotorShield.h"
10
DualVNH5019MotorShield md;
11
12
int command = 0;  //incoming serial data
13
int led = 11;
14
int ledPin = 13;
15
int buttonpin = 5;
16
SoftwareSerial bluetooth(A2, A3);
17
int cmd;
18
19
//Servo head;
20
void setup() {
21
  bluetooth.begin(9600);
22
  Serial.begin(9600); // set up Serial library at 9600 bps - this is the speed the serial interface will work all
23
  pinMode(led, OUTPUT); //connect here the blue LED
24
  pinMode (ledPin, OUTPUT);
25
  pinMode (buttonpin, OUTPUT);
26
  md.init();
27
28
}
29
30
void loop() {
31
 
32
  if (bluetooth.available()) {
33
    cmd = bluetooth.read();
34
    Serial.println(cmd);
35
    
36
    if (cmd >= 'A' && cmd < 'T')
37
    {
38
    
39
    switch (cmd)
40
    { 
41
      
42
      case 'C':
43
        md.setM1Speed(0); // stopped
44
        md.setM2Speed(0); // stopped
45
        break;
46
47
      case 'A':
48
        md.setM1Speed(-300);
49
        md.setM2Speed(-300);
50
        break;
51
52
      case 'B':
53
        md.setM1Speed(-120);
54
        md.setM2Speed(-120);
55
        break;
56
57
      case 'D':
58
        md.setM1Speed(120);
59
        md.setM2Speed(150);
60
        break;
61
62
      case 'E':
63
        md.setM1Speed(380);
64
        md.setM2Speed(400);
65
        break;
66
67
      case 'F':
68
        md.setM1Speed(250);
69
        md.setM2Speed(-250);
70
        break;
71
        
72
      case 'G':
73
        md.setM1Speed(120);
74
        md.setM2Speed(-120);
75
        break;
76
        
77
      case 'H':
78
        md.setM1Speed(-120);
79
        md.setM2Speed(120);
80
        break;
81
        
82
      case 'I':
83
        md.setM1Speed(-250);
84
        md.setM2Speed(250);
85
        break;
86
87
      case 'J':
88
        digitalWrite(ledPin, HIGH);
89
        break;
90
91
      case 'K':
92
         digitalWrite(ledPin, LOW);
93
         break;
94
95
      case 'L':
96
         digitalWrite(buttonpin, HIGH);
97
         break;
98
99
      case 'M':
100
         digitalWrite(buttonpin, LOW);
101
         break;
102
        
103
       default:
104
        cmd=0;
105
        break;
106
        
107
      case 'O':
108
        digitalWrite(led, LOW);
109
        break;
110
      case 'P':
111
        analogWrite(led, 50);
112
        break;
113
      case 'Q':
114
        analogWrite(led, 100);
115
        break;
116
      case 'R':
117
        analogWrite(led, 150);
118
        break;
119
      case 'S':
120
        analogWrite(led, 200);
121
        break;
122
      case 'T':
123
        analogWrite(led, 255);
124
        break;
125
        
126
127
     
128
   }
129
    }
130
  }
131
}