]> git.piffa.net Git - rover/blob - libraries/rover/rover.cpp
Merge branch 'objects' of kim:/home/git/rover into objects
[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 void car::stop () {
52 // Motor A
53     digitalWrite(_in1,LOW);
54     digitalWrite(_in2,HIGH);
55     analogWrite(_enA,0);
56 // Motor B
57     digitalWrite(_in3,LOW);
58     digitalWrite(_in4,HIGH);
59     analogWrite(_enB,0);
60 }
61
62
63 // Funzioni
64
65 void abilita() {
66 // Abilita i PINs come OUTPUTS
67     pinMode(enA, OUTPUT);
68     pinMode(in1, OUTPUT);
69     pinMode(in2, OUTPUT);
70     pinMode(enB, OUTPUT);
71     pinMode(in3, OUTPUT);
72     pinMode(in4, OUTPUT);
73 }
74
75
76 // MotorA
77 void forwardA() {
78     // Avanzamento motore
79     digitalWrite(in1,LOW);
80     digitalWrite(in2,HIGH);
81     analogWrite(enA,speedA);
82 }
83
84 void forwardA(byte speedA) {
85     // Avanzamento motore
86     digitalWrite(in1,LOW);
87     digitalWrite(in2,HIGH);
88     analogWrite(enA,speedA);
89 }
90
91 void backwardA() {
92     // Reverse motore
93     digitalWrite(in2,LOW);
94     digitalWrite(in1,HIGH);
95     analogWrite(enA,speedA);
96 }
97
98 void backwardA(byte speedA) {
99     // Reverse motore
100     digitalWrite(in2,LOW);
101     digitalWrite(in1,HIGH);
102     analogWrite(enA,speedA);
103 }
104
105 void stopA() {
106     // Stop
107     digitalWrite(enA,LOW);
108 }
109
110 // MotorB
111 void forwardB() {
112     // Avanzamento motore
113     digitalWrite(in3,LOW);
114     digitalWrite(in4,HIGH);
115     analogWrite(enB,speedB);
116 }
117
118 void forwardB(byte speedB) {
119     // Avanzamento motore
120     digitalWrite(in3,LOW);
121     digitalWrite(in4,HIGH);
122     analogWrite(enB,speedB);
123 }
124
125 void backwardB() {
126     // Reverse motore
127     digitalWrite(in4,LOW);
128     digitalWrite(in3,HIGH);
129     analogWrite(enB,speedB);
130 }
131
132 void backwardB(byte speedB) {
133     // Reverse motore
134     digitalWrite(in4,LOW);
135     digitalWrite(in3,HIGH);
136     analogWrite(enB,speedB);
137 }
138
139 void stopB() {
140     // Stop
141     digitalWrite(enB,LOW);
142 }