hezhian hezhain / armtest

Fork of stepper by Xiaoyuan Yu

Committer:
hezhian
Date:
Thu Jul 26 06:28:55 2018 +0000
Revision:
4:35d44eec6939
Parent:
3:fd565358f888
final test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Dennis_Yu 1:bbb51c42e7d2 1 #include "mbed.h"
Dennis_Yu 1:bbb51c42e7d2 2 #include "stepper.h"
Dennis_Yu 1:bbb51c42e7d2 3
Dennis_Yu 2:e537d08c705b 4 void stepperMotor::moveStepper()
Dennis_Yu 1:bbb51c42e7d2 5 {
Dennis_Yu 3:fd565358f888 6 if(remain == 0 || limitSwitch.read() == 0)
Dennis_Yu 3:fd565358f888 7 {
Dennis_Yu 3:fd565358f888 8 remain = 0;
Dennis_Yu 1:bbb51c42e7d2 9 return;
Dennis_Yu 3:fd565358f888 10 }
Dennis_Yu 1:bbb51c42e7d2 11 if(step)
Dennis_Yu 1:bbb51c42e7d2 12 {
Dennis_Yu 1:bbb51c42e7d2 13 step = 0; //STEP 1->0
Dennis_Yu 1:bbb51c42e7d2 14 remain--;
Dennis_Yu 1:bbb51c42e7d2 15 }
Dennis_Yu 1:bbb51c42e7d2 16 else
Dennis_Yu 1:bbb51c42e7d2 17 {
Dennis_Yu 1:bbb51c42e7d2 18 step = 1; //STEP 0->1
Dennis_Yu 1:bbb51c42e7d2 19 }
Dennis_Yu 1:bbb51c42e7d2 20 }
Dennis_Yu 1:bbb51c42e7d2 21
Dennis_Yu 2:e537d08c705b 22 void stepperMotor::enable()
Dennis_Yu 2:e537d08c705b 23 {
Dennis_Yu 2:e537d08c705b 24 en = 0;
Dennis_Yu 2:e537d08c705b 25 }
Dennis_Yu 2:e537d08c705b 26
Dennis_Yu 2:e537d08c705b 27 void stepperMotor::enable(int inputRemain)
Dennis_Yu 2:e537d08c705b 28 {
Dennis_Yu 3:fd565358f888 29 setDir(inputRemain >= 0? true: false);
Dennis_Yu 3:fd565358f888 30 remain = inputRemain >= 0? inputRemain: -inputRemain;
Dennis_Yu 2:e537d08c705b 31 enable();
Dennis_Yu 2:e537d08c705b 32 }
Dennis_Yu 2:e537d08c705b 33
Dennis_Yu 2:e537d08c705b 34 void stepperMotor::disable()
Dennis_Yu 1:bbb51c42e7d2 35 {
Dennis_Yu 2:e537d08c705b 36 remain = 0;
Dennis_Yu 2:e537d08c705b 37 en = 1;
Dennis_Yu 2:e537d08c705b 38 }
Dennis_Yu 2:e537d08c705b 39
Dennis_Yu 2:e537d08c705b 40 void stepperMotor::pause()
Dennis_Yu 2:e537d08c705b 41 {
Dennis_Yu 2:e537d08c705b 42 en = 1;
Dennis_Yu 1:bbb51c42e7d2 43 }
Dennis_Yu 2:e537d08c705b 44
Dennis_Yu 2:e537d08c705b 45 void stepperMotor::setDir(bool direction)
Dennis_Yu 2:e537d08c705b 46 {
Dennis_Yu 2:e537d08c705b 47 dir = direction;
Dennis_Yu 2:e537d08c705b 48 }
Dennis_Yu 2:e537d08c705b 49
Dennis_Yu 3:fd565358f888 50 stepperMotor::stepperMotor(PinName stepPin, PinName dirPin, PinName enPin, PinName limitSwitchPin, float period):
Dennis_Yu 3:fd565358f888 51 remain(0), step(stepPin), dir(dirPin), en(enPin), limitSwitch(limitSwitchPin)
Dennis_Yu 2:e537d08c705b 52 {
Dennis_Yu 2:e537d08c705b 53 disable();
hezhian 4:35d44eec6939 54 //limitSwitch.mode(PullUp);
Dennis_Yu 2:e537d08c705b 55 stepper.attach(this, &stepperMotor::moveStepper, period);
Dennis_Yu 2:e537d08c705b 56 }