想通过初始位置为基准控制而不是当前位置时,使用 stepGoto() 函数。此函数在电机工作的状态也可使用。电机动作时,实行新的函数setpGoto()时立即执行。
step.stepGoto(pos)
step.stepGoto(pos, speed)
step.stepGoto(pos, speed, accel)
pos - 目标计数位置
在pos 值前加 "+"或是"-" 体现正旋转或是逆旋转。(省略时: "+") 目标计数的位置不是以当前位置而是以初始位置为基准。
speed - 旋转速度,单位 pps
※ pps: pulse per second
accel - 加速度,pps/s单位
在accel设定值的情况,相应值不仅应用在加速上还适用在减速上。
#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.setVrefStop(2);
step.setVrefDrive(8);
step.setResonance(120, 250);
step.setSpeed(400);
step.setAccel(0, 0);
step.setPosition(0);
step.stepGoto(400);
delay(2000);
step.stepGoto(-400);
delay(2000);
step.stepGoto(400);
delay(2000);
while(step.getState()) {
delay(1);
}
}
void loop() {
}