]> git.piffa.net Git - rover/blob - libraries/rover/rover.cpp
f284162b970330d6352509e4194283434c4b5b18
[rover] / libraries / rover / rover.cpp
1 /*
2   Rover 
3
4 Autore: Andrea Manni
5
6 Link: http://aero.piffa.net
7 Licenza:    GPLv3
8
9 */
10
11 #include "Arduino.h"
12 #include "rover.h"
13
14 #define dEBUG
15
16 // Configurazione con OUTPUT digitali
17 // motor one
18 const int enA = 6;
19 const int in1 = 7;
20 const int in2 = 8;
21 byte speedA = 255;
22 // motor two
23 const int enB = 5;
24 const int in3 = 4;
25 const int in4 = 3;
26 byte speedB = 255;
27 // Funzioni
28
29 void abilita() {
30 // Abilita i PINs come OUTPUTS
31     pinMode(enA, OUTPUT);
32     pinMode(in1, OUTPUT);
33     pinMode(in2, OUTPUT);
34     pinMode(enB, OUTPUT);
35     pinMode(in3, OUTPUT);
36     pinMode(in4, OUTPUT);
37 }
38
39
40 // MotorA
41 void forwardA() {
42     // Avanzamento motore
43     digitalWrite(in1,LOW);
44     digitalWrite(in2,HIGH);
45     analogWrite(enA,speedA);
46 }
47
48 void forwardA(byte speedA) {
49     // Avanzamento motore
50     digitalWrite(in1,LOW);
51     digitalWrite(in2,HIGH);
52     analogWrite(enA,speedA);
53 }
54
55 void backwardA() {
56     // Reverse motore
57     digitalWrite(in2,LOW);
58     digitalWrite(in1,HIGH);
59     analogWrite(enA,speedA);
60 }
61
62 void backwardA(byte speedA) {
63     // Reverse motore
64     digitalWrite(in2,LOW);
65     digitalWrite(in1,HIGH);
66     analogWrite(enA,speedA);
67 }
68
69 void stopA() {
70     // Stop
71     digitalWrite(enA,LOW);
72 }
73
74 // MotorB
75 void forwardB() {
76     // Avanzamento motore
77     digitalWrite(in3,LOW);
78     digitalWrite(in4,HIGH);
79     analogWrite(enB,speedB);
80 }
81
82 void forwardB(byte speedB) {
83     // Avanzamento motore
84     digitalWrite(in3,LOW);
85     digitalWrite(in4,HIGH);
86     analogWrite(enB,speedB);
87 }
88
89 void backwardB() {
90     // Reverse motore
91     digitalWrite(in4,LOW);
92     digitalWrite(in3,HIGH);
93     analogWrite(enB,speedB);
94 }
95
96 void backwardB(byte speedB) {
97     // Reverse motore
98     digitalWrite(in4,LOW);
99     digitalWrite(in3,HIGH);
100     analogWrite(enB,speedB);
101 }
102
103 void stopB() {
104     // Stop
105     digitalWrite(enB,LOW);
106 }
107
108 // Servo
109 void turnDX() {
110     // TurnDX
111     myservo.write(170);
112 }
113     
114 void turnSX() {
115     // TurnSX
116     myservo.write(10);
117 }
118
119 void turnMiddle() { 
120     // TurnDX
121     myservo.write(middle);
122 }