如何只使用一个Arduino Uno让两个步进电机在同一时间和相同方向旋转?

时间:2018-02-05 16:58:12

标签: c++ arduino arduino-uno arduino-ide

我目前的代码:

    #include <Stepper.h>

    const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution


    Stepper myStepper(stepsPerRevolution, 3, 4, 5, 6);
    Stepper secondStepper(stepsPerRevolution, 8, 9, 10, 11);

    void setup() {
    // set the speed at 60 rpm:
    myStepper.setSpeed(60);
    // initialize the serial port:
    Serial.begin(9600);

    secondStepper.setSpeed(60);
    // initialize the serial port:
    Serial.begin(9600);
    }

    void loop() {
    // step one revolution  in one direction:
    Serial.println("clockwise");
    myStepper.step(stepsPerRevolution);
    Serial.println("clockwise");
    secondStepper.step(stepsPerRevolution);
    delay(500);
    }

我上周末在黑客马拉松期间正在研究一个涉及上述代码的项目,但我无法让这两台电机同时移动。我想知道这里是否有人知道如何正确地做到这一点,以便我将来做好准备。

如果重要的话,我正在使用Arduino IDE。

2 个答案:

答案 0 :(得分:0)

您需要一个非阻塞步骤(或开始)调用来启动动作并立即返回。启动两个动作后,您将等待每个电机的异步回调,表示动作已完成。每个电机一个螺纹可以直接工作。在继续之前,主线程将等待两个电机线程完成。

答案 1 :(得分:0)

是的,您可以并行连接两个电动机,以便在Ramps 1.4板上控制z轴!