linear motor code for ksk

Dependencies:   mbed

Committer:
cws8262
Date:
Sun Feb 19 22:09:41 2017 +0000
Revision:
0:bc6aa7a92c1b
Child:
1:ff295adcca59
c

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cws8262 0:bc6aa7a92c1b 1 #include "LinearMotor.h"
cws8262 0:bc6aa7a92c1b 2 #include "mbed.h"
cws8262 0:bc6aa7a92c1b 3
cws8262 0:bc6aa7a92c1b 4 LinearMotor::LinearMotor(PinName Dir, PinName Pulse, PinName St, PinName Limit)
cws8262 0:bc6aa7a92c1b 5 :dir(Dir), pulse(Pulse), st(St), limit(Limit)
cws8262 0:bc6aa7a92c1b 6 {
cws8262 0:bc6aa7a92c1b 7 spd=1;
cws8262 0:bc6aa7a92c1b 8 k=0.005;
cws8262 0:bc6aa7a92c1b 9 timer.attach(callback(this,&LinearMotor::step),k/spd);
cws8262 0:bc6aa7a92c1b 10 pulse=0;
cws8262 0:bc6aa7a92c1b 11 dir=1;
cws8262 0:bc6aa7a92c1b 12 st=1;
cws8262 0:bc6aa7a92c1b 13 }
cws8262 0:bc6aa7a92c1b 14
cws8262 0:bc6aa7a92c1b 15 void LinearMotor::step(void){
cws8262 0:bc6aa7a92c1b 16 pulse=!pulse;
cws8262 0:bc6aa7a92c1b 17 if(dir) pos++;
cws8262 0:bc6aa7a92c1b 18 else pos--;
cws8262 0:bc6aa7a92c1b 19 }
cws8262 0:bc6aa7a92c1b 20
cws8262 0:bc6aa7a92c1b 21 void LinearMotor::move(double Pos){
cws8262 0:bc6aa7a92c1b 22
cws8262 0:bc6aa7a92c1b 23 if(Pos-pos>=0) dir=1;
cws8262 0:bc6aa7a92c1b 24 else dir=0;
cws8262 0:bc6aa7a92c1b 25 while(Pos!=pos) st=0;
cws8262 0:bc6aa7a92c1b 26 st=1;
cws8262 0:bc6aa7a92c1b 27 }
cws8262 0:bc6aa7a92c1b 28
cws8262 0:bc6aa7a92c1b 29 void LinearMotor::spdset(double Spd){
cws8262 0:bc6aa7a92c1b 30 spd=Spd;
cws8262 0:bc6aa7a92c1b 31 timer.attach(callback(this,&LinearMotor::step),k/spd);
cws8262 0:bc6aa7a92c1b 32 }
cws8262 0:bc6aa7a92c1b 33
cws8262 0:bc6aa7a92c1b 34 void LinearMotor::init(void){
cws8262 0:bc6aa7a92c1b 35 dir=1;
cws8262 0:bc6aa7a92c1b 36 st=0;
cws8262 0:bc6aa7a92c1b 37 //while();
cws8262 0:bc6aa7a92c1b 38 st=1;
cws8262 0:bc6aa7a92c1b 39 }