stepper motor unipolar half mode sla 7026/7033

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?

UserRevisionLine numberNew 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 }