Red de conocimiento informático - Conocimiento de la instalación - Cómo utilizar PWM para controlar la rotación de un motor paso a paso y generar con precisión el número de pulsos

Cómo utilizar PWM para controlar la rotación de un motor paso a paso y generar con precisión el número de pulsos

Hay dos propósitos al enviar pulsos

1) Control de velocidad

2) Control de posición

El propósito del control de velocidad es la misma que la cantidad analógica. No es necesario prestar atención.

Los pulsos se envían a través de PWM, la velocidad es estable y el consumo de recursos es pequeño.

El control de posición necesita obtener el número. de pulsos enviados Hay cuatro métodos

1) Cada uno envía un pulso y realiza un conteo de interrupciones

2) Según la frecuencia de envío × tiempo de envío, se obtiene el número de pulsos. Para pulsos de velocidad variable, el número total de pulsos se puede obtener mediante integración acumulativa

3) Un temporizador sirve como estación maestra para enviar pulsos y el otro temporizador sirve como estación esclava para contar los pulsos enviados.

4) Utilice el método DMA, por ejemplo, para enviar 1000 pulsos, defina u16 por [1001], cada vez que se envíe un pulso, dma actualizará la siguiente palabra del ciclo de trabajo de la matriz, y el La última palabra de la matriz será 0, lo que significa que el pulso se detendrá

El propósito de los cuatro métodos y características anteriores

1) Es más adecuado para pulsos de baja frecuencia. Se puede decir que es la primera opción para pulsos de baja velocidad, como menos de 10 Khz, de lo contrario, la interrupción ocupará demasiada CPU. En este método, se debe prestar atención a aumentar la prioridad de la interrupción, de lo contrario se perderá. conteo,

2) Se utiliza como temporizador con una precisión de sincronización muy alta y puede permitir la pérdida del conteo de pulsos

3) Modo maestro-esclavo, que requiere temporizadores adicionales para count, por ejemplo, tim1 envía pulsos y tim2 cuenta. Este método es el más conveniente, independientemente de si la velocidad es alta o baja. Al mismo tiempo, consume la menor cantidad de CPU y solo necesita ocupar varios temporizadores.

4) El modo DMA también se considera una forma muy determinista y no se pierden pulsos, pero a altas velocidades ocupa más bus interno. Al mismo tiempo, se utilizará un controlador DMA redundante. Otra desventaja es que es más complicado de usar y no se implementa el principio KISS.