У меня есть два шаговика, я использую библиотеку accelStepper, мне нужно что бы шаговики переместились на 300 шагов, подождали к примеру 3 секунды и снова переместились на 300 шагов, самое близкое что получилось сделать это, но спустя время int переполняется и все перестает работать.
Я знаю что есть метод setCurrentPosition и можно поставить его на ноль в каждом цикле, а потом просить сделать шаги в точку 200 и так снова, но если я ставлю точку как ноль в конце цикла, все тоже перестает работать, по этому я использую странное добавление к инту, пожалуйста подскажите как это правильно сделать
AccelStepper stepper1; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
AccelStepper stepper2(AccelStepper::FULL4WIRE, 6, 7, 8, 9);
int position = 0;
int last_time = 0;
void setup()
{
stepper1.setMaxSpeed(300.0);
stepper1.setAcceleration(100.0);
stepper2.setMaxSpeed(300.0);
stepper2.setAcceleration(100.0);
last_time = millis();
}
void loop() {
position = position+300;
stepper1.moveTo(position);
stepper2.moveTo(position);
stepper1.run();
stepper2.run();
if (millis() - last_time >= 3000) {
stepper1.stop();
delay(1000);
last_time = millis(); // сброс таймера
}
}