Library version for DC_Stepper_Controller_Lib with PWM speed control

Dependencies:   mbed QEI PID

Dependents:   DR-ArmServoTest Auto_DC_pick_class MBed_TR1 ros_button_2021

Revision:
9:49b59b308767
Parent:
8:703502486434
Child:
10:fe56f6800a72
--- a/DC_Motor_Controller.h	Mon May 24 08:19:58 2021 +0000
+++ b/DC_Motor_Controller.h	Tue May 25 06:17:55 2021 +0000
@@ -8,83 +8,17 @@
 class DC_Motor_Controller {
 
     private:
-    
-        DigitalOut out1, out2;    //  Motor direction control pin 2
-        QEI dc_motor;    //(D8,D7,NC,792);    // Create QEI object for increment encoder
-        void goto_angle(int angle){      //  Move motor to specific angle from home point
-            
-            //Serial device(USBTX, USBRX);  // tx, rx
-            //device.baud(19200);
-        
-            int tar_pulse = ((double) angle / 360.0)* (2.0 * 792.0);    //  Calculating target pulse number
-            int cur_pulse = dc_motor.getPulses();
-            int direction = 0;
-            
-            //device.printf("\n------ current %d -> target %d -----\n", cur_pulse, tar_pulse);
-            while ( tar_pulse != cur_pulse ){
-                direction = tar_pulse > cur_pulse; // cw 1 ; acw 0
-              
-                // if margin of error is less than +-3 (+- 1 degree), give up 
-                if(abs(tar_pulse - cur_pulse) < 3)
-                {
-                    //device.printf("GIVEUP ");
-                    break;
-                }
-                
-                // future direction diff from current motion, pause for 0.5 to prevent unexpected outputs
-                else if (direction != out1) 
-                {
-                    out1 = out2 = 0;
-                    //device.printf("PAUSE ");
-                    wait(0.3); 
-                }
-              
-                out1 = direction;
-                out2 = !direction;
-                //device.printf(direction ? "> " : "< ");
-                
-                cur_pulse = dc_motor.getPulses();   //  Get increment encoder current pulse number
-                
-                //device.printf("%d ", cur_pulse);
-    
-            }
-            //device.printf("\n----- done -----\n");
-            out1 = 0;       //  Stop motor
-            out2 = 0;
-        };
+        DigitalOut out1, out2; 
+        QEI dc_motor;
     
     public:
-        /** 
-          * @param N1(M1), IN2(M2), INA, INB, PPR 
-          */
-        DC_Motor_Controller(PinName out1_p, PinName out2_p, PinName in1_p,  PinName in2_p, int PPR) : 
-            out1(out1_p), out2(out2_p), dc_motor(in1_p, in2_p, NC, PPR){}
+        DC_Motor_Controller(PinName out_M1, PinName out_M2, PinName in_A,  PinName in_B, int PPR) : 
+            out1(out_M1), out2(out_M2), dc_motor(in_A, in_B, NC, PPR){}
         
-        void reset(){       // Setting home point for increment encoder
-            /*while (home_button == 0){       // Continue to turn clockwise until home button pressed
-                out1 = 1;
-                out2 = 0;
-            }*/
-            out1 = 0;
-            out2 = 0;
-            dc_motor.reset();       //  Reset pulse_
-            wait(0.3);
-         };
-         
-        void move_angle(int angle){      //  move for relative distance
-            reset();
-            goto_angle(angle);
-            reset();
-        };
-        
-        void set_out(int a, int b)
-        { 
-            out1 = a;
-            out2 = b;
-        }
-        int get_pulse()
-        {
-            return dc_motor.getPulses();
-        }
+        void goto_angle(int angle);
+        void reset();
+        void move_angle(int angle);
+        void set_out(int a, int b);
+        int get_pulse();
 };
 #endif
\ No newline at end of file