Controlar número de revoluciones de motor NEMA 17 con DRV8825

Hola,

Estoy en la tarea de controlar unos motores nema 17 con el Arduino Mega, utilizando como drivers los DRV8825.

El código para esto es el de a continuación, el cual va en el loop

    digitalWrite(selecDirPin, direccion); 

  for (int x = 0; x< 200 ; x++) {
       digitalWrite(selecStepPin, HIGH);
        delay(1);
       digitalWrite(selecStepPin, LOW);
       
  }
   delay(1000);

Con este código, el motor gira 200 pasos (una revolución), hace una pausa y vuelve a girar-pausar indefinidamente. Sin embargo, lo que necesito es que a través del serial yo indique cuantas vueltas haga el motor, ni más ni menos de esta cantidad. No logro encontrar cómo hacerlo, pues debido a que el loop está activo todo el tiempo; por lo tanto el código dentro de este siempre se va a ejecutar, y no sé cómo deternelo hasta una nueva entrada del serial.

Agradezco de antemano su ayuda.

Si te interpreto bien...

Miras si en el serial hay datos para leer.
Si no hay, sales sin hacer nada.
Si hay datos los lees, conviertes a un valor útil y entonces mueves el motor.

Te sugiero que para leer los datos aproveches la función serialEvent() .

Saludos

También lo puedes hacer utilizando esta librería Librería AsyncStepper v2.0, en esa pagina esta toda la información para el uso de la librería.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.