Контроль путем stepMove()


Контроль путем stepMove()

Вы можете управлять шаговым двигателем относительно текущей, а не исходной позиции, используя функцию stepMove(). Эта функция может быть выполнена только тогда, когда двигатель НЕ работает.

step.stepMove(step)
step.stepMove(step, speed)
step.stepMove(step, speed, accel)

Вы можете определить прямое или обратное вращение, добавив «+» или «-» перед значением pos. (По умолчанию: «+») Позиция целевого счетчика относительна текущего, а не начального положения.

Торможение применяется с тем же значением, что и при ускорении.

Пример

#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.stepMove(400);
    delay(2000);
    step.stepMove(-400);
    delay(2000);
    step.stepMove(400);
    delay(2000);

    while(step.getState()) {
        delay(1);
    }
}

void loop() {

}