Я новичок и не могу сделать так, чтобы 2 шаговых двигателя работали синхронно. Вот код который я использую: Спойлер: Код Код (C++): #include <Stepper.h> // Подключение библиотеки для работы с Шаговым Двигателем #define steps 200 // Количество шагов на один оборот // Создание экземпляра класса для работы с Шаговым Двигателем. Указываем кол-во шагов на один оборот // и пины Arduino, к которым подключены обмотки двигателя Stepper myStepper(steps, 8, 9, 10, 11); Stepper myStepper1(steps, 4, 5, 6, 7); void setup() { myStepper.setSpeed(60); // Устанавливаем скорость двигателей вращения об./мин. myStepper1.setSpeed(60); } void loop() { myStepper.step(100); // Вращаем двигатель в одну сторону на 200 шагов myStepper1.step(50); // Вращаем двигатель в одну сторону на 100 шагов delay(1000); // Ждём одну секунду myStepper.step(-100); // Вращаем двигатель в обратную сторону на 200 шагов myStepper1.step(-50); // Вращаем двигатель в обратную сторону на 100 шагов delay(1000); // Ждём одну секунду } При использование данной программы двигатели работают по очереди. Как сделать так, что бы они работали одновременно?
Ну как вы хотели. Вы подаёте команду Код (C++): myStepper.step(100); // Вращаем двигатель в одну сторону на 200 шагов Это не какая-то одиночная элементарная команда. Вы вызываете функцию из библиотеки Stepper.h, которая создаёт на выходах 8, 9, 10, 11 последовательность импульсов необходимых для поворота ШД на 200 шагов. И пока она не отработает, ничего другого выполняться не будет. Только после выполнения данной функции (поворота ШД на 200 шагов), микроконтроллер приступит к выполнению следующей строки Код (C++): myStepper1.step(50); // Вращаем двигатель в одну сторону на 100 шагов
А со Stepper, если не сразу на полную, а поочередно, в цикле, на единицу, то первый, то второй двигать?