利用 stepGotoSW() 函数当限制开关关闭时可自动停止步进电机的动作。 通过此命令电机停止后,电机的状态值变为 stop 。
step.stepGotoSW(id, dir)
step.stepGotoSW(id, dir, speed)
step.stepGotoSW(id, dir, speed, accel)
id - 输入端口的账号(0 ~ 3)
dir - 电机的旋转方向
dir | 旋转方向 |
---|---|
0 or higher than 0 | forward |
otherwise | reverse |
speed - 旋转速度 pps单位
※ pps: pulse per second
accel - 加速度,pps/s 单位
在加速度上设定相应值,不仅适用于加速度还同样适用于减速度。
#include <PhpocExpansion.h>
#include <Phpoc.h>
byte spcId = 1;
ExpansionStepper step(spcId);
void setup() {
Serial.begin(9600);
while(!Serial)
;
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Expansion.begin();
Serial.println(step.getPID());
Serial.println(step.getName());
step.setMode(4);
step.setVrefDrive(8);
step.setSpeed(400);
step.setAccel(0);
// rotate until digital input 0 is LOW
Serial.print("find positive limit ...");
step.stepGotoSW(0, 1);
while(step.getState()) {
delay(1);
}
Serial.println("done");
delay(1000);
// rotate until digital input 1 is LOW
Serial.print("find negative limit ...");
step.stepGotoSW(1, -1);
while(step.getState()) {
delay(1);
}
Serial.println("done");
}
void loop() {
}
find positive limit ...done
find negative limit ...done