2

我一直在尝试制作一个简单的两轴数控。我只是在开始阶段,我只是想查看 accelStepper 库。在 constantSpeed 和 Bounce 草图示例的帮助下,我有了一些想法并编写了以下代码。

    #include <AccelStepper.h>
    AccelStepper stepperX(4, 4, 5, 6, 7);
    AccelStepper stepperY(4, 8, 9, 10, 11);
    unsigned int X = 800;
    unsigned int Y = 600;

    void setup(){
      stepperX.setMaxSpeed(200);
      stepperX.setSpeed(10);
      stepperY.setMaxSpeed(200);
      stepperY.setSpeed(10);
      stepperX.move(200);
      stepperY.move(200);
   }

   void loop(){
      stepperX.runSpeed();
      stepperY.runSpeed();
   }

当我上传这个草图时,电机不运转。但是当我将 runSpeed() 更改为 run() 并添加 setAcceleration() 时,电机会运行但加速。我不想加速。那么,有没有办法在不加速的情况下做到这一点。

4

1 回答 1

3

move来自文档(和之间的唯一区别moveTo是前者做了相对移动):

void AccelStepper::moveTo (long absolute)

设置目标位置。run() 函数将尝试将电机(每次调用最多一步)从当前位置移动到最近调用此函数设置的目标位置。注意:moveTo() 还会重新计算下一步的速度。如果您尝试使用恒速运动,则应在调用 moveTo() 后调用 setSpeed()。

关键线(如饼图):如果您尝试使用恒速运动,则应在调用 moveTo() 后调用 setSpeed()。

但是去过那里(制作 XY 绘图仪,2 轴 CNC),省去很多麻烦,只需使用grbl。它处理所有的坐标轴控制、gcode 解析等。

于 2014-06-29T19:26:44.507 回答