Stepper motor non si muove ma ronza

Con la libreria non ti serve impostare nessun delay, io sospetto un problema di codice.

prova questo (io non l'ho provato però) dovrebbe muoversi avanti e indietro ogni 5 secondi di 200passi

#include <AccelStepper.h>

AccelStepper stepper(1, 9, 8); // driver usage = 1 step pin = 9 dir pin = 8

unsigned long int previousMillis = 0;
bool direzione = true;
bool flag = true;

void setup()
{
  stepper.setMaxSpeed(200.0);
  stepper.setAcceleration(100.0);
}

void loop()
{
  if (millis() - previousMillis > 5000) {
    direzione = !direzione;
    previousMillis = millis();
  }

  if (direzione == true && flag == true) {
    stepper.move(200);
    flag = false;
  }
  if (direzione == false && flag == false) {
    stepper.move(-200);
    flag = true;
  }
  stepper.run();
}