stepper motor unipolar half mode sla 7026/7033
STEPPER.cpp@0:3c13a1d67866, 2016-07-11 (annotated)
- Committer:
- lego
- Date:
- Mon Jul 11 09:13:37 2016 +0000
- Revision:
- 0:3c13a1d67866
sla7026/7033 unipolar stepper motor halfmode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lego | 0:3c13a1d67866 | 1 | #include "mbed.h" |
lego | 0:3c13a1d67866 | 2 | #include "STEPPER.h" |
lego | 0:3c13a1d67866 | 3 | |
lego | 0:3c13a1d67866 | 4 | STEPPER::STEPPER( |
lego | 0:3c13a1d67866 | 5 | PinName a, PinName a_, PinName b, PinName b_, int dir |
lego | 0:3c13a1d67866 | 6 | ): |
lego | 0:3c13a1d67866 | 7 | MotorPin(a, a_, b, b_) |
lego | 0:3c13a1d67866 | 8 | { |
lego | 0:3c13a1d67866 | 9 | Direction = dir; |
lego | 0:3c13a1d67866 | 10 | step_cw[0] = 0x9; |
lego | 0:3c13a1d67866 | 11 | step_cw[1] = 0x8; |
lego | 0:3c13a1d67866 | 12 | step_cw[2] = 0xa; |
lego | 0:3c13a1d67866 | 13 | step_cw[3] = 0x2; |
lego | 0:3c13a1d67866 | 14 | step_cw[4] = 0x6; |
lego | 0:3c13a1d67866 | 15 | step_cw[5] = 0x4; |
lego | 0:3c13a1d67866 | 16 | step_cw[6] = 0x5; |
lego | 0:3c13a1d67866 | 17 | step_cw[7] = 0x1; |
lego | 0:3c13a1d67866 | 18 | step_ccw[0] = 0x1; |
lego | 0:3c13a1d67866 | 19 | step_ccw[1] = 0x5; |
lego | 0:3c13a1d67866 | 20 | step_ccw[2] = 0x4; |
lego | 0:3c13a1d67866 | 21 | step_ccw[3] = 0x6; |
lego | 0:3c13a1d67866 | 22 | step_ccw[4] = 0x2; |
lego | 0:3c13a1d67866 | 23 | step_ccw[5] = 0xa; |
lego | 0:3c13a1d67866 | 24 | step_ccw[6] = 0x8; |
lego | 0:3c13a1d67866 | 25 | step_ccw[7] = 0x9; |
lego | 0:3c13a1d67866 | 26 | Speed = 1000; |
lego | 0:3c13a1d67866 | 27 | count = 0; |
lego | 0:3c13a1d67866 | 28 | } |
lego | 0:3c13a1d67866 | 29 | |
lego | 0:3c13a1d67866 | 30 | STEPPER::~STEPPER() |
lego | 0:3c13a1d67866 | 31 | { |
lego | 0:3c13a1d67866 | 32 | //? |
lego | 0:3c13a1d67866 | 33 | } |
lego | 0:3c13a1d67866 | 34 | |
lego | 0:3c13a1d67866 | 35 | void STEPPER::MotorStart() |
lego | 0:3c13a1d67866 | 36 | { |
lego | 0:3c13a1d67866 | 37 | Motor.attach_us(this, &STEPPER::MotorControl,Speed); |
lego | 0:3c13a1d67866 | 38 | } |
lego | 0:3c13a1d67866 | 39 | |
lego | 0:3c13a1d67866 | 40 | void STEPPER::MotorOff() |
lego | 0:3c13a1d67866 | 41 | { |
lego | 0:3c13a1d67866 | 42 | Motor.detach(); |
lego | 0:3c13a1d67866 | 43 | MotorPin = 0x0; |
lego | 0:3c13a1d67866 | 44 | } |
lego | 0:3c13a1d67866 | 45 | |
lego | 0:3c13a1d67866 | 46 | void STEPPER::SetSpeed(int speed) |
lego | 0:3c13a1d67866 | 47 | { |
lego | 0:3c13a1d67866 | 48 | Speed = speed; |
lego | 0:3c13a1d67866 | 49 | } |
lego | 0:3c13a1d67866 | 50 | |
lego | 0:3c13a1d67866 | 51 | void STEPPER::MotorControl() |
lego | 0:3c13a1d67866 | 52 | { |
lego | 0:3c13a1d67866 | 53 | count++; |
lego | 0:3c13a1d67866 | 54 | if(count>7) count = 0; |
lego | 0:3c13a1d67866 | 55 | if(Direction) MotorPin = step_ccw[count]; |
lego | 0:3c13a1d67866 | 56 | else MotorPin = step_cw[count]; |
lego | 0:3c13a1d67866 | 57 | } |