如何在回路内加速/减速步进电机?

时间:2019-06-25 15:22:26

标签: javascript loops raspberry-pi

我正在尝试通过步进电机加速或减速运动。

我正在使用此循环,并且来自temporal库:

var ramp = 50;
var i = 0;

var stepsToRamp = ((ramp * ramp) + ramp) / 2;

makeSteps(40, 5000);

function makeSteps(pin, steps) {
    rpio.open(pin, rpio.OUTPUT, rpio.LOW);

    temporal.loop(1, function () {
        if (i == 0) {
            rpio.write(pin, this.called % 2 === 0 ? rpio.HIGH : rpio.LOW)

            if ((this.called / 2) > steps) {
                this.stop();
            }


            if (((this.called / 2) < (steps - stepsToRamp)) && ramp != 0) {
                ramp = ramp - 1;
                i = ramp;
            }else if((this.called / 2) > (steps - stepsToRamp)){
                console.log("HERE I SHOULD DERAMP!");
                ramp = ramp + 1;
                i = ramp;
            }
        } else {
            i--;
        }
    });
}

到目前为止,它仍然有效,但是感觉这不是线性加速度。起点非常慢,并朝着全速前进(循环的每次迭代=一个HIGHLOW信号),开始时确实非常快。减速时一样。

有人可以在这里帮助我,告诉我我的思维过程错在哪里吗?

谢谢!

0 个答案:

没有答案