]> git.piffa.net Git - rover/blobdiff - libraries/rover/rover.cpp
Primo oggetto per drive, con un solo metodo
[rover] / libraries / rover / rover.cpp
index 5328a02bf8328a8388edabac9e4c724faa7d2e70..b2087284706e09d85f8feee1b298663d1a1a3dc3 100644 (file)
@@ -13,17 +13,42 @@ Licenza:    GPLv3
 
 #define dEBUG
 
-// Configurazione con OUTPUT digitali
 // motor one
-const int enA = 6;
-const int in1 = 7;
-const int in2 = 8;
-byte speedA = 255;
+extern int enA = 6;
+extern int in1 = 7;
+extern int in2 = 8;
+extern byte speedA = 255;
 // motor two
-const int enB = 5;
-const int in3 = 4;
-const int in4 = 3;
-byte speedB = 255;
+extern int enB = 5;
+extern int in3 = 4;
+extern int in4 = 3;
+extern byte speedB = 255;
+
+// Oggetti
+car::car () {
+// Abilita i PINs come OUTPUTS
+    pinMode(_enA, OUTPUT);
+    pinMode(_in1, OUTPUT);
+    pinMode(_in2, OUTPUT);
+    pinMode(_enB, OUTPUT);
+    pinMode(_in3, OUTPUT);
+    pinMode(_in4, OUTPUT);
+    velA = speedA;
+    velB = speedB;
+}
+
+void car::avanti () {
+// Motor A
+    digitalWrite(_in1,LOW);
+    digitalWrite(_in2,HIGH);
+    analogWrite(_enA,velA);
+// Motor B
+    digitalWrite(_in3,LOW);
+    digitalWrite(_in4,HIGH);
+    analogWrite(_enB,velB);
+}
+
+
 // Funzioni
 
 void abilita() {
@@ -37,7 +62,7 @@ void abilita() {
 }
 
 
-// MotorB
+// MotorA
 void forwardA() {
     // Avanzamento motore
     digitalWrite(in1,LOW);
@@ -45,6 +70,13 @@ void forwardA() {
     analogWrite(enA,speedA);
 }
 
+void forwardA(byte speedA) {
+    // Avanzamento motore
+    digitalWrite(in1,LOW);
+    digitalWrite(in2,HIGH);
+    analogWrite(enA,speedA);
+}
+
 void backwardA() {
     // Reverse motore
     digitalWrite(in2,LOW);
@@ -52,6 +84,13 @@ void backwardA() {
     analogWrite(enA,speedA);
 }
 
+void backwardA(byte speedA) {
+    // Reverse motore
+    digitalWrite(in2,LOW);
+    digitalWrite(in1,HIGH);
+    analogWrite(enA,speedA);
+}
+
 void stopA() {
     // Stop
     digitalWrite(enA,LOW);
@@ -65,6 +104,13 @@ void forwardB() {
     analogWrite(enB,speedB);
 }
 
+void forwardB(byte speedB) {
+    // Avanzamento motore
+    digitalWrite(in3,LOW);
+    digitalWrite(in4,HIGH);
+    analogWrite(enB,speedB);
+}
+
 void backwardB() {
     // Reverse motore
     digitalWrite(in4,LOW);
@@ -72,6 +118,13 @@ void backwardB() {
     analogWrite(enB,speedB);
 }
 
+void backwardB(byte speedB) {
+    // Reverse motore
+    digitalWrite(in4,LOW);
+    digitalWrite(in3,HIGH);
+    analogWrite(enB,speedB);
+}
+
 void stopB() {
     // Stop
     digitalWrite(enB,LOW);