Вот с этим с этим кодом шаговик делает только пол оборота туда и обратно без каких либо задержек во времени
#include
// изменить количество шагов для вашего мотора
#define STEPS 4078
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper_28BYJ stepper(STEPS, 2, 3, 4, 5);
// установим скорость вращения 5 об/мин
stepper.setSpeed(5);
}
void loop()
{
pinMode(STEPS, HIGH);
sleep_enable();
Timer1.initialize(7000000); // 7 Секунд
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
stepper.step(4000); // Делаем 4000 шагов в одну строну
// Main code loop
// TODO: Put your regular (non-ISR) logic here
pinMode(STEPS, LOW );
sleep_mode();
Timer1.initialize(7000000); // 7 Секунд
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
stepper.step(-4000);// Делаем 4000 шагов в другую строну