]> git.piffa.net Git - rover/blob - libraries/rover/rover.cpp
Primo oggetto per drive, con un solo metodo
[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 // motor one
17 extern int enA = 6;
18 extern int in1 = 7;
19 extern int in2 = 8;
20 extern byte speedA = 255;
21 // motor two
22 extern int enB = 5;
23 extern int in3 = 4;
24 extern int in4 = 3;
25 extern byte speedB = 255;
26
27 // Oggetti
28 car::car () {
29 // Abilita i PINs come OUTPUTS
30     pinMode(_enA, OUTPUT);
31     pinMode(_in1, OUTPUT);
32     pinMode(_in2, OUTPUT);
33     pinMode(_enB, OUTPUT);
34     pinMode(_in3, OUTPUT);
35     pinMode(_in4, OUTPUT);
36     velA = speedA;
37     velB = speedB;
38 }
39
40 void car::avanti () {
41 // Motor A
42     digitalWrite(_in1,LOW);
43     digitalWrite(_in2,HIGH);
44     analogWrite(_enA,velA);
45 // Motor B
46     digitalWrite(_in3,LOW);
47     digitalWrite(_in4,HIGH);
48     analogWrite(_enB,velB);
49 }
50
51
52 // Funzioni
53
54 void abilita() {
55 // Abilita i PINs come OUTPUTS
56     pinMode(enA, OUTPUT);
57     pinMode(in1, OUTPUT);
58     pinMode(in2, OUTPUT);
59     pinMode(enB, OUTPUT);
60     pinMode(in3, OUTPUT);
61     pinMode(in4, OUTPUT);
62 }
63
64
65 // MotorA
66 void forwardA() {
67     // Avanzamento motore
68     digitalWrite(in1,LOW);
69     digitalWrite(in2,HIGH);
70     analogWrite(enA,speedA);
71 }
72
73 void forwardA(byte speedA) {
74     // Avanzamento motore
75     digitalWrite(in1,LOW);
76     digitalWrite(in2,HIGH);
77     analogWrite(enA,speedA);
78 }
79
80 void backwardA() {
81     // Reverse motore
82     digitalWrite(in2,LOW);
83     digitalWrite(in1,HIGH);
84     analogWrite(enA,speedA);
85 }
86
87 void backwardA(byte speedA) {
88     // Reverse motore
89     digitalWrite(in2,LOW);
90     digitalWrite(in1,HIGH);
91     analogWrite(enA,speedA);
92 }
93
94 void stopA() {
95     // Stop
96     digitalWrite(enA,LOW);
97 }
98
99 // MotorB
100 void forwardB() {
101     // Avanzamento motore
102     digitalWrite(in3,LOW);
103     digitalWrite(in4,HIGH);
104     analogWrite(enB,speedB);
105 }
106
107 void forwardB(byte speedB) {
108     // Avanzamento motore
109     digitalWrite(in3,LOW);
110     digitalWrite(in4,HIGH);
111     analogWrite(enB,speedB);
112 }
113
114 void backwardB() {
115     // Reverse motore
116     digitalWrite(in4,LOW);
117     digitalWrite(in3,HIGH);
118     analogWrite(enB,speedB);
119 }
120
121 void backwardB(byte speedB) {
122     // Reverse motore
123     digitalWrite(in4,LOW);
124     digitalWrite(in3,HIGH);
125     analogWrite(enB,speedB);
126 }
127
128 void stopB() {
129     // Stop
130     digitalWrite(enB,LOW);
131 }