motores paso a paso (en mbed, no arduino)

3

Hay información sobre el chiphacker sobre el uso de un arduino para controlar los motores paso a paso (estoy manejando Bipolar, 4 cables, motores), sin embargo, me resulta difícil saber cómo controlar un motor paso a paso usando mi mbed device .

El hecho de que esté usando un mbed es realmente bueno, he montado un H-Bridge para tener 4 pines de mi microcontrolador / microprocesador que van a los pines necesarios del H-Bridge. ¿Qué pulsos debo enviar a cuál de los pines cuando? Puedo PwmOut si eso es más útil. Así:

Cualquier consejo sería muy bienvenido, incluso si es solo una URL para un tutorial razonablemente detallado.

    
pregunta JP.

3 respuestas

3

Echa un vistazo a " jones en motores paso a paso " una fuente de información bastante completa que incluye pulso tablas para una variedad de tipos de motor.

    
respondido por el jkopel
3

Microchip tiene mucha información sobre el control del motor, incluida steppers:

    
respondido por el Leon Heller
1

Para hacer que ese tipo de giro paso a paso, debe producir lo que equivale a un sistema de corrientes de dos fases (90 grados aparte) en los devanados.

Si su paso a paso tiene patas etiquetadas como A y B para un devanado y C y D para el otro, desearía recorrer el siguiente patrón de corrientes

+A -B  and  +C -D    .. where +A -B means current into A, returned on B, etc.
+A -B  and  -C +D
-A +B  and  -C +D
-A +B  and  +C -D

Cada ciclo a través de esos cuatro estados llevará al motor a través de una revolución eléctrica . Los Steppers suelen tener una gran cantidad de polos, por lo que tomará un número de ciclos antes de obtener una revolución mecánica completa del eje del motor.

Ahora tiene dos puentes en H, uno para el devanado AB y otro para el devanado del CD. Se trata de cuatro bits de controlador por devanado, ocho en total. (No sería prematuro optimizar esto a cuatro bits de inmediato, pero voy a omitir hacerlo por un momento)

Refiriéndose a la unidad del lado alto para el tramo A como AH, y al lado bajo como AL, y así sucesivamente, puede producir la secuencia de corrientes anterior al encender los transistores de la unidad de esta manera

AH AL  BH BL  CH CL  DH DL
 1  0   0  1   1  0   0  1
 1  0   0  1   0  1   1  0
 0  1   1  0   0  1   1  0
 0  1   1  0   1  0   0  1

A estas alturas, debería ser obvio que los controles H y L para un medio puente dado siempre son la negación del otro. De hecho, si alguna vez maneja los lados alto y bajo del mismo medio puente, fumará el puente, por lo que es más seguro emitir solo un bit de control por medio puente, y usar un inversor de hardware para obtener el Control complementario.

También debe notar que la secuencia nunca enciende ambas unidades de lado alto (o ambas de lado bajo) para un devanado dado. La unidad B es el complemento de la unidad A. Así que, de hecho, podría reducir esto a solo dos bits.

Creo que si tuviera que manejar este tipo de motor desde un microcontrolador, podría usar un flip-flop dual D 7474 (D-FF) como un tipo de registro externo de 2 bits con salidas de doble riel. Cada entrada de datos del 7474 se engancharía a su propio bit de micro salida. Un tercer bit del micro conduciría el reloj. Luego, Q1 manejaría AH y BL, Q1 * impulsa AL y BH, y de manera similar, Q2 alimenta CH y DL, mientras que Q2 * va a CL y DH. Cada bit FF establece efectivamente la dirección de la corriente en uno de los devanados.

Luego, en el software, acaba de generar los dos bits para establecer las direcciones actuales de la forma que desee, y regístrelas en el FF haciendo que su reloj sea bajo y luego vuelva a subir. Entonces su secuencia de motor de dos fases es

clk AB CD
0   1  0    ; be sure to get D-FF inputs ready with the 0 state of the clock
1   1  0    ; b/c the 7474 will latch the values on the positive edge.
0   0  0    ; you want the data lines stable during the clock edge.
1   0  0
0   0  1
1   0  1
0   1  1
1   1  1

Entonces, a un costo de tres bits, puede pisar el motor, aunque siempre hay una corriente a través de ambas bobinas, por lo que no puede hacer girar el motor libremente ... a menos que use un cuarto bit para actuar como global habilitar para ambos lados de ambos puentes.

    
respondido por el JustJeff

Lea otras preguntas en las etiquetas