FPGA: necesita un controlador de motor paso a paso con una aceleración suave [cerrado]

-4

Quiero conectar un motor paso a paso a mi Cyclone V FPGA a través de un controlador con interfaz STEP / DIR. Pero no quiero simplemente dar N pulsos con F frecuencia. Quiero configurar su máxima aceleración y desaceleración. Pero es un poco demasiado sofisticado para mí.

¿No me puede recomendar un módulo de controlador paso a paso listo para usar con una aceleración suave?

P.S. También tengo una opción para usar la biblioteca AccelStepper con Arduino Due, pero no me dará la velocidad completa.

    
pregunta Felix

1 respuesta

2

Escribe todo el asunto tú mismo, da más control.

Deja de pensar en la frecuencia y comienza a pensar en la fase motora. ¿Cuál es el ángulo del motor y qué desea que sea el ángulo en breve?

El cambio en el ángulo es la frecuencia.

El cambio de frecuencia es la aceleración.

Tener un registro que represente la fase del motor. Los pocos bits superiores de esto se asignarán a los cables del motor de pasos. Los potencialmente muchos LSB de este registro le permiten implementar velocidades bajas, que es una pequeña fracción de un giro por paso de tiempo.

Tener un registro que represente la frecuencia del motor. Cada paso de tiempo, limítelo a la velocidad máxima e incremente el registro de fase con este valor.

Tener un registro que represente la aceleración del motor. Cada paso de tiempo, limítelo a la aceleración máxima e incremente el registro de frecuencia con este valor.

Estos tres valores de registro pueden compararse con la posición / velocidad / aceleración deseada de su objetivo, y modificarse cada paso de tiempo según sea necesario, cerrando un ciclo de control. El uso de los tres le da una ventaja para implementar una respuesta de tipo PID.

Para acelerar suavemente a su velocidad máxima, establezca la posición deseada en infinita.

Para moverse suavemente de una posición a otra lo más rápido posible, establezca la nueva fase del motor como objetivo. Se acelerará lo más rápido posible a la velocidad máxima. Para que se desacelere hacia abajo en su posición de destino sin sobrepasarse, debe ajustar su bucle PID de manera apropiada.

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas