pull from the DC_Stepper_Motor program and set up as library
Revision 0:80182fb5ee8f, committed 2021-05-19
- Comitter:
- howanglam3
- Date:
- Wed May 19 09:49:44 2021 +0000
- Commit message:
- change the location of private and public;
Changed in this revision
| DC_Motor_Controller.h | Show annotated file Show diff for this revision Revisions of this file |
| QEI.lib | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/DC_Motor_Controller.h Wed May 19 09:49:44 2021 +0000
@@ -0,0 +1,54 @@
+#include "mbed.h"
+#include "QEI.h"
+
+#ifndef DC_MOTOR_CONTROLLER_H
+#define DC_MOTOR_CONTROLLER_H
+
+class DC_Motor_Controller {
+
+ public:
+ DigitalOut out1, out2; // Motor direction control pin 2
+ 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)
+ {
+ }
+
+ 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 = out2 = 0;
+ dc_motor.reset(); // Reset pulse_
+ //wait(1);
+ };
+
+ void move_angle(int angle){ // move for relative distance
+ reset();
+ goto_angle(angle);
+ reset();
+ };
+
+ private:
+ 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
+ int tar_pulse = ((double) angle / 360.0)* (2.0 * 792.0); // Calculating target pulse number
+ int cur_pulse = dc_motor.getPulses();
+
+ while ( tar_pulse != cur_pulse ){
+
+ if (tar_pulse > cur_pulse){ // Rotate motor clockwise
+ out1 = 1;
+ out2 = 0;
+ }
+ else { // Rotate motor counter clockwrise
+ out1 = 0;
+ out2 = 1;
+ }
+ cur_pulse = dc_motor.getPulses(); // Get increment encoder current pulse number
+ }
+ out1 = 0; // Stop motor
+ out2 = 0;
+ };
+
+};
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QEI.lib Wed May 19 09:49:44 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/stivending/code/QEI/#bee7b70a365b