Updated stepper motor controller

Fork of StepperController by Viorel Stefan Savinescu

Committer:
acracan
Date:
Fri Jun 08 08:05:29 2018 +0000
Revision:
1:6e8186dd5bfa
Parent:
0:2cfd64d210f3
Add different types of sequencing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SavinescuStefan 0:2cfd64d210f3 1 #ifndef STEPPERCONTROLLER_H
SavinescuStefan 0:2cfd64d210f3 2 #define STEPPERCONTROLLER_H
SavinescuStefan 0:2cfd64d210f3 3 #include "mbed.h"
SavinescuStefan 0:2cfd64d210f3 4
SavinescuStefan 0:2cfd64d210f3 5 class StepperController {
SavinescuStefan 0:2cfd64d210f3 6
SavinescuStefan 0:2cfd64d210f3 7 public:
SavinescuStefan 0:2cfd64d210f3 8 enum Direction {DirectionCW = 1, DirectionCCW = -1};
acracan 1:6e8186dd5bfa 9 enum SequenceType {Consecutive, Interleaved};
SavinescuStefan 0:2cfd64d210f3 10 StepperController(PinName phaseA,PinName enA, PinName phaseB, PinName enB );
SavinescuStefan 0:2cfd64d210f3 11 void advance();
SavinescuStefan 0:2cfd64d210f3 12 void setPeriod(float period);
SavinescuStefan 0:2cfd64d210f3 13 void setPulseWidth(float width);
SavinescuStefan 0:2cfd64d210f3 14 void setDirection(Direction dir);
acracan 1:6e8186dd5bfa 15 void setSequenceType(SequenceType seq);
SavinescuStefan 0:2cfd64d210f3 16
SavinescuStefan 0:2cfd64d210f3 17 private:
SavinescuStefan 0:2cfd64d210f3 18 int state;
SavinescuStefan 0:2cfd64d210f3 19 float pulseWidth;
SavinescuStefan 0:2cfd64d210f3 20 DigitalOut phaseA, phaseB;
SavinescuStefan 0:2cfd64d210f3 21 PwmOut enA, enB;
SavinescuStefan 0:2cfd64d210f3 22 Direction dir;
acracan 1:6e8186dd5bfa 23 SequenceType seq;
SavinescuStefan 0:2cfd64d210f3 24 void updateOutputs();
SavinescuStefan 0:2cfd64d210f3 25
SavinescuStefan 0:2cfd64d210f3 26
SavinescuStefan 0:2cfd64d210f3 27 };
SavinescuStefan 0:2cfd64d210f3 28
acracan 1:6e8186dd5bfa 29 #endif