]> git.piffa.net Git - rover/blobdiff - libraries/rover/rover.cpp
Sistemati gli include della lib Servo.h
[rover] / libraries / rover / rover.cpp
index 5328a02bf8328a8388edabac9e4c724faa7d2e70..d95fe065190912808ab355e57e2843965a97bd73 100644 (file)
@@ -24,8 +24,17 @@ const int enB = 5;
 const int in3 = 4;
 const int in4 = 3;
 byte speedB = 255;
-// Funzioni
 
+// Servo vars
+int pos = 0;    // variable to store the servo position 
+const byte servoPIN =9 ;
+const byte middle = 90; // Centratura servo
+const int spausa = 30; // Pausa movimenti servo
+Servo myservo; // Non c'e' bisogno di extern se e' dichiarato in questo scope
+
+////////////////////////
+// Funzioni:
+//
 void abilita() {
 // Abilita i PINs come OUTPUTS
     pinMode(enA, OUTPUT);
@@ -34,10 +43,14 @@ void abilita() {
     pinMode(enB, OUTPUT);
     pinMode(in3, OUTPUT);
     pinMode(in4, OUTPUT);
+
+
+    pinMode(servoPIN, OUTPUT);
+    myservo.attach(servoPIN);
 }
 
 
-// MotorB
+// MotorA
 void forwardA() {
     // Avanzamento motore
     digitalWrite(in1,LOW);
@@ -45,6 +58,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 +72,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 +92,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,7 +106,30 @@ 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);
 }
+
+// Servo
+void turnDX() {
+    // TurnDX
+    myservo.write(170);
+}
+    
+void turnSX() {
+    // TurnSX
+    myservo.write(10);
+}
+
+void turnMiddle() { 
+    // TurnDX
+    myservo.write(middle);
+}