Esta pregunta se refiere a este video , así como a este de la misma persona que demuestra sus resultados con un motor paso a paso (¡junto con un método de prueba realmente bueno que involucra un punto láser en una pared a unos pocos metros de distancia!).
¿Cómo logró este tipo de comportamiento paso a paso de alta resolución de pasos <0,04° (con 1 segundo de retención en cada paso) en un motor paso a paso estándar de 1,8° sin engranajes?
La persona afirma usar "patrones de onda sinusoidal" con la función analogWrite de Arduino.
Estoy familiarizado con microstepping, pero:
¿Cómo se hace esto dentro de un boceto de Arduino y sin algún hardware como DRV8825 o L6470?
y ¿cómo es capaz de mantener la posición de manera tan definitiva y precisa, algo que los artículos sobre micropasos generalmente advierten que no está exactamente garantizado?
(Obviamente, no hay una forma clara de medir la precisión y la exactitud aquí con la información proporcionada limitada de los videos. Sin embargo, al aproximar la superficie plana de la pared como parte de un círculo centrado en el paso a paso, podemos ver que hay pasos muy finos formados por el punto láser, así como una desviación bastante pequeña entre el ángulo esperado y el observado para cada paso, especialmente en el segundo video que vinculé).
Si miras las notas en los videos, verás que está haciendo micropasos. Afirma explícitamente que está impulsando el paso a paso con ondas sinusoidales. La forma más sencilla de hacer esto es con las salidas PWM alimentando el control de amplitud de los dos controladores paso a paso.
Comience observando que 1,8 grados divididos por 0,04 grados es ~45, y dado que una forma de onda de cuadratura paso a paso estándar requiere 4 pasos para completar un ciclo, esto implica una resolución de micropasos de 4 x 45, o 180 micropasos por ciclo. De hecho, está bastante claro que está usando 64 micropasos nominales.
Si n es el conteo de pasos por revolución de excitación (es decir, micropasos por cada 4 pasos nominales), sea n = 0 a 255. Para cada n sucesivo, encuentre el ángulo de paso A = 360/n. Entonces busca
También tenga en cuenta que, si observa detenidamente los videos, la distancia paso a paso no es constante, y eso es de esperar.
Dado que el espejo que se utiliza presenta una carga mecánica muy pequeña, el micropaso tiene cierta medida de precisión posicional. Cuando el motor está cargado, eso no aguanta.
El L6470 tiene un micropaso de 128 pasos, que sería alrededor de 1,8/128 = 0,014 grados/paso. Hay bibliotecas Arduino disponibles para controlar este chip.
Editar: en el comportamiento de analogOut: Microstepping es simplemente aproximar una corriente o voltaje fraccionario cortando la señal entrante. Es posible que solo esté usando un par de DAC y un amplificador en lugar de un controlador de micropasos. Nunca lo hice yo mismo, pero no veo ninguna razón por la que no funcione.
Marko Bursic
Andy alias
Sasha
Sasha
PlasmaHH
Sasha
keith
Marko Bursic
PlasmaHH