Drive Motor Group B4-B5

Fork of ArduMotoShield by Didier Donsez

Files at this revision

API Documentation at this revision

Comitter:
NorNick
Date:
Wed Dec 09 04:08:22 2015 +0000
Parent:
0:72e45c332025
Commit message:
For Finish

Changed in this revision

ArduMotoShield.cpp Show annotated file Show diff for this revision Revisions of this file
ArduMotoShield.h Show annotated file Show diff for this revision Revisions of this file
diff -r 72e45c332025 -r 1c712818d82a ArduMotoShield.cpp
--- a/ArduMotoShield.cpp	Sat Nov 08 15:44:22 2014 +0000
+++ b/ArduMotoShield.cpp	Wed Dec 09 04:08:22 2015 +0000
@@ -22,10 +22,12 @@
 #define LOW 0
 #define HIGH 1
 
-DigitalOut inApin(D12, LOW); //direction control for motor outputs 1 and 2 is on digital pin 12
-DigitalOut inBpin(D13, LOW); //direction control for motor outputs 3 and 4 is on digital pin 13
+//DigitalOut inApin(D12, LOW); //direction control for motor outputs 1 and 2 is on digital pin 12
+//DigitalOut inBpin(D13, LOW); //direction control for motor outputs 3 and 4 is on digital pin 13
+BusOut inApin(D11,D12);
+BusOut inBpin(D13,D14);
 PwmOut pwmApin(D3); //PWM control for motor outputs 1 and 2 is on digital pin 3
-PwmOut pwmBpin(D11); //PWM control for motor outputs 3 and 4 is on digital pin 11
+PwmOut pwmBpin(D5); //PWM control for motor outputs 3 and 4 is on digital pin 11
 
 bool isSetup=false;
 
@@ -54,57 +56,72 @@
 
 // Basic ArduMotoShield operations
 
-void ArduMotoShield::forward() //full speed forward
+void ArduMotoShield::forward(float A_PWM,float B_PWM) //full speed forward
 { 
         if(!isSetup) setup();
 
-        inApin.write(LOW);
-        inBpin.write(LOW);
-        pwmApin.write(MAXPWM);
-        pwmBpin.write(MAXPWM);
-        printf("Forward\n");
+        //inApin.write(LOW);
+        //inBpin.write(LOW);
+  
+        inApin=1;
+        inBpin=1;
+        pwmApin.write(A_PWM);//(MAXPWM);
+        pwmBpin.write(B_PWM);//(MAXPWM);
+        //printf("Forward : %.2f\n",AnaPWM);
 }
 
-void ArduMotoShield::backward() //full speed backward
+void ArduMotoShield::backward(float A_PWM,float B_PWM) //full speed backward
 {
         if(!isSetup) setup();
 
-        inApin.write(HIGH);
-        inBpin.write(HIGH);
-        pwmApin.write(MAXPWM);
-        pwmBpin.write(MAXPWM);
-        printf("Backward\n");
+        //inApin.write(HIGH);
+        //inBpin.write(HIGH);
+
+        inApin=2;
+        inBpin=2;
+        pwmApin.write(A_PWM);//(MAXPWM);
+        pwmBpin.write(B_PWM);//(MAXPWM);
+        //printf("Backward\n");
+}
+
+void ArduMotoShield::right(float A_PWM,float B_PWM)
+{
+        if(!isSetup) setup();
+
+        //inApin.write(HIGH);
+        //inBpin.write(LOW);
+  
+        inApin=1;
+        inBpin=2;
+        pwmApin.write(A_PWM);//(MAXPWM);
+        pwmBpin.write(B_PWM);//(MAXPWM);
+        //printf("Right\n");
+}
+
+void ArduMotoShield::left(float A_PWM,float B_PWM)
+{
+        if(!isSetup) setup();
+
+        //inApin.write(LOW);
+        //inBpin.write(HIGH);
+   
+        inApin=2;
+        inBpin=1;
+        pwmApin.write(A_PWM);//(MAXPWM);
+        pwmBpin.write(B_PWM);//(MAXPWM);
+        //printf("Left\n");
 }
 
 void ArduMotoShield::stop()
 {
         if(!isSetup) setup();
 
-        inApin.write(LOW);
-        inBpin.write(LOW);
+        //inApin.write(LOW);
+        //inBpin.write(LOW);
+  
+        inApin=0;
+        inBpin=0;
         pwmApin.write(0.0f);
         pwmBpin.write(0.0f);
-        printf("Stop\n");
-}
-
-void ArduMotoShield::right()
-{
-        if(!isSetup) setup();
-
-        inApin.write(HIGH);
-        inBpin.write(LOW);
-        pwmApin.write(MAXPWM);
-        pwmBpin.write(MAXPWM);
-        printf("Right\n");
-}
-
-void ArduMotoShield::left()
-{
-        if(!isSetup) setup();
-
-        inApin.write(LOW);
-        inBpin.write(HIGH);
-        pwmApin.write(MAXPWM);
-        pwmBpin.write(MAXPWM);
-        printf("Left\n");
-}
+        //printf("Stop\n");
+}
\ No newline at end of file
diff -r 72e45c332025 -r 1c712818d82a ArduMotoShield.h
--- a/ArduMotoShield.h	Sat Nov 08 15:44:22 2014 +0000
+++ b/ArduMotoShield.h	Wed Dec 09 04:08:22 2015 +0000
@@ -24,10 +24,10 @@
     static void setVoltages(float vin, float vmaxmotor);
 
     static void stop();
-    static void forward();
-    static void backward();
-    static void left();
-    static void right();
+    static void forward(float A_PWM,float B_PWM);
+    static void backward(float A_PWM,float B_PWM);
+    static void left(float A_PWM,float B_PWM);
+    static void right(float A_PWM,float B_PWM);
 private:
     static void setup();
 };