# Introducción a los motores Paso a Paso



## Marcelo

*Pon a funcionar tus motores*


Los motores de pasos son utilizados en muchos dispositivos y aplicaciones que son partes de nuestra vida diaria.
Aprende algunas bases para empezar a diseñar productos con ellos.

Los motores de pasos están donde sea. Como un desarrolador experimentado, quizás ya hayas diseñado motores de paso dentro de tus proyectos. Si no, seguro lo harás a lo largo de tu carrera o afición.  
Este artículo resume alguna terminología importante asociada con motores de paso, presentando suficiente información para entregarte un entendimiento básico de los elementos de un motor de pasos, y te muestra como controlar un paso a paso usando un microcontrolador o procesador de señal digital.

*El Paso a Paso.*
Un motor de pasos es un tipo de motor que convierte energía eléctrica en energía mecánica a través de los principios del electromagnetismo. También conocidos como “Steppers” o “Paso a Paso”, esos motores fueron usados a inicios de los años 1920. Sus usos se ha elevado rápidamente con la popularidad de los sistemas integrados, incluyendo impresoras, unidades de disco, juguetes, limpia parabrisas, buscapersonas, brazos robóticas y video cámaras.

Siempre que se requiera mover desde una posición a otra (sin importar que la aplicación sea industrial, militar, médica, automotriz o de entretenimiento), puedes apostar que un motor de pasos es la fuerza motora. Los motores de pasos vienen en muchas formas y tamaños, pero la mayoría caen dentro de una o dos categorías: Los paso a paso de reluctancia variable  o los paso a paos de magneto permanente.
Este artículo se enfoca en los más simples y populares Paso a Paso de magneto permanente.

*Figura 1: Un estator con dos dientes y un devanado.*







Construcción de un motor de pasos
El movimiento de un motor de pasos se hace posible gracias a los cables que son enrollados alrededor de los dientes de un estator, la parte no movible o estacionaria del motor como se muestra en la Figura 1. En general, el cable es enrollado en forma de bobina y es llamado solenoide. En un motor, el cable que es enrollado alrededor de un diente se denomina bobina, arrollado, devanado o fase. Si la corriente está fluyendo en la dirección mostrada en la Figura 1 y vemos el motor desde arriba mirando hacia abajo en el tope del diente, la corriente realiza un movimiento en contra de las agujas del reloj, alrededor de cada uno de los dos dientes. De acuerdo a la ley de Ampere y la regla de la mano derecha, este movimiento de corriente induce un campo magnético con el polo norte del campo apuntando hacia arriba

Supongamos ahora que construimos un dispositivo con dos bobinas en la parte estacionaria y dentro colocamos un imán permanente que puede rotar libremente alrededor de su centro. Esta pieza rotatoria es llamada Rotor.

*Figura 2: Un motor de dos fases, dos polos.*






El motor simple mostrado en la figura 2a, es llamado motor de dos fases y dos polos porque el estator tiene 2 fasis (bobinas), y el rotor tiene dos polos magnéticos, norte y sur. Si hacemos pasar corriente a través de la bobina 1 en la dirección mostrada en la figura 2a (sin ninguna corriente en la bobina 2), el rotor naturalmente se alineará a si mismo en la dirección mostrada, con su polo sur apuntando a la dirección norte del campo magnético del estator.

Ahora cortamos la corriente de la bobina 1 y se la aplicamos a la bobina 2 en la dirección mostrada en la Figura 2b. El campo magnético del estator apuntará a la izquierda, y el rotor girará de tal manera que el polo sur se alinee con este campo magnético del estator.

Luego cortamos la corriente de la bobina 2 y se la aplicamos nuevamente a la 1 en la dirección mostrada en la Figura 2c. Noten que la corriente de la bobina 1 es opuesta a la que se muestra en la Figura 2a. Esto resultará en un campo de estator apuntando hacia abajo, por lo tanto el rotor girará a la posición donde nuevamente su polo sur quede apuntando hacia abajo.

Nuevamente cortamos corriente en la bobina 1 y se la aplicamos a la 2 en la dirección mostrada en la Figura 2d. Esto producirá un campo de estator apuntando hacia la derecha, por lo que el rotor girará a la posición en donde su polo sur esté apuntando a la derecha

Finalmente, quitamos corriente de la bobina 2 y la aplicamos a la 1 en la dirección mostrada en la Figura 2a, regresando el rotor a su posición original.

Hemos completado un ciclo de excitación eléctrica de las bobinas del motor, mientras el rotor ha girado una revolución completa. En otra palabras, la frecuencia eléctrica del motor es igual a su frecuencia mecánica.

Si suponemos un Segundo de secuencia a través de los cuatro pasos de la Figura 2, la frecuencia eléctrica será 1Hz. El rotor giró en ese tiempo un vez, por lo tanto la frecuencia mecánica es también 1Hz. En general, para un “Stepper” de dos fases, se puede demostrar que la relación entre las frecuencias mecánica y eléctrica viene dada por la siguiente ecuación:

*fe = fm P / 2 (1)*

donde fe es la frecuencia eléctrica, fm es la frecuencia mecánica y P es el número de polos magnéticos igualmente espaciados del motor.

También podemos ver de la Figura 2 que un paso del motor resulta en una rotación de 90 grados. En general, para un “stepper” de dos fases, se puede también demostrar que un paso resulta en una rotación dada por la ecuación:

*1 paso = 180º/ P (2)*

Esta ecuación nos dice que nuestro motor de dos polos rotará 180º/ 2 = 90º, lo cual es consistente con lo que observamos en la Figura 2. La ecuación también muestra que un mayor número de polos resulta en una mejor resolución de paso. Es muy común encontrar paso a paso de dos fases con valores entre 12 y 200 polos, cuyas resoluciones de paso están comprendidas ente 15 y 0,9 grados.

*Figura 3: Un motor bipolar de seis polos.*






En otro ejemplo, la Figura 3 muestra cuatro pasos eléctricos de un motor bipolar de seis polos.  Como se muestra, el rotor consiste de tres magnetos permanentes y, por consiguiente, seis polos magnéticos. 
Aplicando la misma lógica anterior, podemos analizar el movimiento del rotor, las corrientes aplicadas a las bobinas de la armadura y los grados de rotación 

*Figura 4: Excitando ambas bobinas del motor simultáneamente.*






Podemos incrementar el torque del motor, enviando corriente a través de ambas bobinas simultáneamente. La Figura 4 muestra este proceso. El campo magnético del estator es el vector suma de las componentes individuales de los campos magnéticos de cada bobina individual. El campo magnético del estator continuará rotando en pasos de 90 grados (como en las Figuras 2 y 3), pero ahora el campo es mucho mas fuerte debido a la excitación combinada de las dos bobinas. Debido a que el campo magnético resultante es el vector suma de dos campos componentes perpendiculares, su fuerza se incrementará en un factor de 2*1.414. (2 raiz de 2). Este resulta en una torque proporcionalmente mayor aplicado por el motor a su carga.

*Secuencias de excitación*
Ya que hemos visto que secuencia de excitación son las causantes de la rotación del “stepper”, deberemos poner algún hardware asociado para proporcionar la secuencia de paso deseada. A estos circuitos (o combinación de hardware/software) es los que se conoce como “driver” del motor.

En la Figura 4 podemos ver que secuencia de excitación necesitamos para aplicarla a las bobinar de un motor de dos fases a fin de generar la rotación.
Los terminales del motor están marcados como 1A, 1B, 2A y 2B. Los terminales 1 corresponden a la primera bobina y los 2 a la segunda.

Para el primer paso, necesitamos aplicar un voltaje positivo a los terminales 1B - 2B y deberemos poner a tierra los terminales 1A – 2A. Para el segundo paso, aplicaremos voltaje a los terminales 1B – 2A y tierra a los terminales 1A - 2B (esto en realidad depende de en que dirección se hayan enrollados las bobinas sobre los dientes. Asumiremos que se hizo en la dirección que afirma lo dicho anteriormente). Continuando con los otros pasos, podemos resumir la secuencia de excitación a lla mostrada en la Tabla1, en donde “1” significa voltaje positivo y “0” significa aterramiento.

*Figura 5: Un circuito “Puente H” puede ser usado para manejar cada bobina.*






Debido a que la corriente puede fluir en cualquier sentido en los terminales de las bobinas, al motor se denomina “Motor Bipolar” y a la secuencia de manejo “Secuencia Bipolar”. Un “driver” para motor bipolar  usualmente esta construido con un circuito denominado puente H (H Bridge). En la Figura 5 se muestra el esquemático básico de un puente H conectado a dos terminales de un paso a paso. Una fuente de poder DC constante (cuyo valor depende de las especificaciones del motor), se conecta al puente H a través de una resistencia. El circuito  se conmuta por medio de “switches” (marcados como S1, S2, S3 y S4) a los dos terminales de la bobina. El arreglo mostrado en el esquemático luce como un H mayúscula, de allí su denominación de puente H.






*Tabla 1: Polaridades en los terminales de la bobina para una secuencia de paso de dos fases.*

En la Tabla 1, vemos que el primer paso requiere de un 0 lógico en el Terminal 2A y un 1 lógico al Terminal 2B. Podemos hacer esto cerrando los interruptores S1 y S4 y abriendo S2 y S3. El segundo paso requiere de un 1 lógico en 2A y de un 0 lógico en 2B, lo cual logramos cerrando S2 y S3 y abriendo S1 y S4. Análogamente hacemos el tercer paso manteniendo S2 y S3 cerrados y S1 y S4 abiertos, y el cuarto cerrando S1 y S4 y abriendo S2 y S3.

Podemos seguir una línea similar de razonamiento para la bobina 1. Vemos entonces que un par de puente H pueden ser usados para generar toda la secuencia de excitación. Esto genera la Tabla 2, en la que se muestra la posición de los interruptores o “switches” para cada paso.






*Tabla 2: Posición de los interruptores para una secuencia de paso de dos fases.*

Fíjense que si R=0 y S1 y S3 se cierran a la vez, la corriente a través de los interruptores será infinita. Esto producirá un daño a la fuente de poder y a los interruptores. Además, la resistencia disipa potencia y hace que el driver sea menos eficiente pero provee protección contra corto circuitos.


*Figura 6: Bobina de motores unipolares.*






*Motores Unipolares y su manejo*
Un motor unipolar es similar a un bipolar excepto que cada bobina tiene un terminal central común que es accesible desde el exterior del motor. El Terminal que está arriba lo hemos llamado B y el de abajo, A, y al que viene del centro de la bobina lo hemos llamado C.

Muchas veces nos enfrentamos a motores en los que sus terminales no están identificados. Conociendo como los “steppers” están construidos, podemos determinar que cable está asociado con cada bobina, simplemente midiendo la resistencia entre sus terminales. La resistencia entre terminales que pertenecen a bobinas distintas será infinita. Si la resistencia medida entre A y C 
Es 100 Ohm entonces, entre B y C será también 100 Ohm y entre A y B 200 Ohm. En este caso, la resistencia de 200 Ohm se denomina “Resistencia de Bobina”

*Figura 7: Circuito para el control de un motor unipolar.*






La Figura 7 muestra el circuito de “driver” o circuito manejador para un motor unipolar de una fase. Podemos ver que con S1 cerrado y S2 abierto, la corriente fluirá de derecha a izquierda a traves de la bobina. Con S1 abierto y S2 cerrado, la corriente fluirá de izquierda a derecha. Entonces, podemos cambiar la dirección del flujo de corriente usando solamente 2 interruptores. 
Las secuencia de la posición de los interruptores para un driver de motor unipolar se muestra en la Tabla 3.






*Tabla 3: Posición de los interruptores para una secuencia de paso de dos fases en un motor unipolar.*

Los motores unipolares son simples de controlar. Si embargo son mecánicamente más complicados que los motores bipolares debido a que tienen un terminal central común, además son generalmente más caros que los bipolares. Debido a que la corriente eléctrica fluye en una sola dirección a través de la mitad de las bobinas que posee el motor, producen la mitad del campo eléctrico que los bipolares y por ende generan menos torque que estos últimos.

El conocimiento de cómo están construidos ambos tipos de motores, nos permite establecer algunas inferencias cuando nos encontramos con un motor que no está etiquetado y no tenemos su hoja de datos. Un motor con cuatro terminaleses un motor bipolar de dos fases. Mediremos la continuidad entes terminales para identificar los polos correspondientes a cada bobina. Un motor con seis terminales puede ser un motor unipolar de dos fases o un motor bipolar de tres fases. Para determinar el tipo, mediremos la continuidad entre pares de terminales y así conoceremos el número de bobinas o campos que tiene.

*Figura 8: Esquemático de la controladora del motor paso a paso.*






*Controlando tu motor*
La teoría de control del motor discutida anteriormente en este trabajo puede ser implementada con una solución de hardware únicamente: un microcontrolador o un DSP.
La Figura 8 muestra como puede ser controlado un motor unipolar de dos fases usando transistores e interruptores. Cada transistor necesita tener su base conectada a una de las salidas digitales del microcontrolador. Los emisores deberán ir conectados a tierra y los colectores a los cuatro terminales de las bobinas del motor. El Terminal  central del motor irá conectado al Terminal positivo de la fuente de poder.

Cada colector también se conectará a la fuente a través de un diodo a fin de proteger el transistor del voltaje inducido por las bobinas del motor durante su rotación. De más está decir que en la medida que el roto gira, un voltaje se induce en las bobinas del motor. Este voltaje suministrará corriente hacia los colectores de los transistores a no ser que se impida por medio del diodo.

Supongamos por ejemplo, que una salida digital “do1” esta a nivel alto y “do2” está a nivel bajo.  Entonces, el transistor de do1 estará polarizado y la corriente fluirá desde +V a través del terminal central común del motor, a través de la base del transistor T1, saliendo por su emisor. Sin embargo, do2 estará apagada, por lo que la corriente no podrá fluir a través de T2. Continuando este razonamiento, podemos deducir la Tabla 3 para poder apreciar la secuencia deseada en las salidas digitales del microcontrolador para poder manejar el motor. Vean la Tabla 4.






*Tabla 4: Salidas digitales del microcontrolador para las secuencias de pasos en un motor unipolar de dos fases.*

Ahora que conocemos el hardware y la secuencia de las salidas digitlaes necesaria para el manejo del motor, podemos escribir el software para nuestro microcontrolador/DSP favorito a fin de implementar la secuencia mostrada.

*Control del Firmware*
Hemos montado lo explicado anteriormente en un PIC16F877 de Microchip. Los diodos utilizados fueron los 1N4003 y los transistores unos Darlington 2SD1276A. 
Como salidas digitales se escogieron  los bits 0, 1,  2 y 3 del puerto A (PortA). Los motores Airpax son unipolares,  de dos fases y 5 voltios.
Si bien en nuestro circuito utilizamos la misma fuente de poder de 5 voltios tanto para el microprocesador como para la alimentación de motores, para aplicaciones serias se recomienda el uso de fuentes separadas a fin de evitar ruidos inducidos en el microcontrolador.

Más abajo se muestra el código fuente. Este programa hace que el motor realice un paso cada 50 milisegundos. Trabaja inicializando las salidas digitales para el paso #1 como se muestra en la Tabla 4. Entonces, cada 50ms (o aquél que se especifiquen la constante WaitTime), el programa rotará las salidas digitales en el orden correcto. Para invertir la dirección de giro, simplemente realice el ciclo en el orden opuesto.

*Listado 1 PIC16F877 Código Assembler para un motor paso a paso unipolar bifásico*



		Código:
	

; Declaración de variables
cblock  0x20
	Count1	; Contador Delay
	Count2	; Contador Delay
endc
; Declare constants
WaitTime	equ	d'50'	; Espera 50 msec entre steps
Position1	equ	b'1010'	; Valores de la Salida digital para 1er step
Position2	equ	b'1001'	; Valores de la Salida digital para 2do step
Position3	equ	b'0101'	; Valores de la Salida digital para 3er step
Position4	equ	b'0110'	; Valores de la Salida digital para  4to step
;****************  Inicio del Programa  ***********************
	org 	0	; Vector de Reset
	nop		; nop para Microchip's In-Circuit Debugger (ICD)
;****************  Initialization  *********************
	banksel	TRISA
	movlw	0xC0
	movwf	TRISA	; Coloca bits 0-3  todas como Salidas en PortA
	movlw	b'00000110'; Configura Port A como digital
	movwf	ADCON1
	banksel	PORTA	; Regreso al Bank 0
	clrf	Count1	; Borra Contador
	clrf	Count2	; Borra Contador
	movlw	Position1	; Comenzar motor in Posición 1
	movwf	PORTA
;********************  Motor drive  *********************
Drive
	movlw	WaitTime	; Inicializa WaitTime a Count1
	movwf	Count1
Loop	call	Timer	; Espera 1 msec
	decfsz	Count1, f	; Decrementa Count1. Count1 = 0 ?
	goto	Loop	; No – Mantente esperando
	movf	PORTA, w	; Leer la posición presente
	sublw	Position1
	bnz 	Drive1
	movlw	Position2	; En la Posición1 - step a la Posición2
	movwf	PORTA 
	goto	Drive	; otro Step
Drive1
	movf	PORTA, w	; Leer la posición actual
	sublw	Position4
	bnz 	Drive2
	movlw	Position1	; En la Posición4 - step a la Posición1
	movwf	PORTA
	goto	Drive	; otro Step
Drive2
	movf	PORTA, w	; Leer la posición actual
	sublw	Position3
	bnz	Drive3
	movlw	Position4	; En la Posición3 - step a la Posición4
	movwf	PORTA
	goto	Drive	; otro Step 
Drive3
	movf	PORTA, w	; Leer la posición actual
	sublw	Position2
	bnz	Drive4
	movlw	Position3	; En la Posición2 - step a la Posición3
	movwf	PORTA
	goto	Drive	; otro Step 
Drive4
	movlw	Position1	; En posición desconocida - step a la Posición1
	movwf	PORTA	; Escribir PORTA
	goto	Drive	; otro Step
;*************  Subturina de 1 msec  de Retardo *****************
; Esta rutina toma  1 ms en ejecutarse (a velocidad de reloj de 4 MHz)
Timer
	movlw	d'200'	; Set loop count
	movwf	Count2	; Save loop count
Time1	nop
	nop
	decfsz	Count2, f	; Count2 - 1 = 0 ?
	goto	Time1	; No – Continuar
	return		; Si – Regresar

end


El motor que hemos utilizado tiene 24 polos. Esto significa que un paso mueve 180º/24 = 7,5º. Este motor rota 7,5º cada 50ms, por lo que realiza una vuelta completa cada 2,4 segundos.
Si reducimos el valor de la constante WaitTime por un factor de 2, el motor rotará al doble de la velocidad. Sin embargo, existe un límite en la velocidad  rotacional del motor. Si el campo del estator gira muy rápido, el rotor no será capaz de seguirlo debido a su inercia, fricción y otras limitaciones mecánicas.
En ese punto el motor empieza a “saltar” y deja de rotar sincrónicamente con el campo de estator. Si WaitTime se decrece consecutivamente, también el motor dejará de rotar.

Otros tipos de motores pueden contener 3 o 4 fases adicionales a las 2 que hemos tratado en este artículo. Algunos “steppers” bifásicos tiene un Terminal central que se conecta en el medio, entre ambas bobinas. Este tipo de paso a paso tiene 5 terminales saliendo del motor.

También existen otros tipos de motores que no son paso a paso. Los más viejos y simples son los motores DC o de corriente continua. Por lo general usan escobillas y no son muy duraderos como deberían ser. Sin embargo, existen motores DC que no usan escobillas y utilizan circuitería electrónica para la transmisión de energía a sus campos y rotores. Estos últimos tiene una vida útil mucho más extensa.

Otro tipo es el de inducción. Un motor de inducción trabaja con un principio totalmente diferente a los steppers y DC. El voltaje de alimentación de este tipo de motores es alterno (AC) en lugar de continuo (DC) y la velocidad del rotor  retrasa la velocidad del campo magnético del estator. 
Los paso a paso y los DC son motores sincrónicos ya que su rotor gira “sincrónicamente” con el campo magnético del estator. Los de inducción son asyncrónicos porque la velocidad del rotor  se retrasa relativamente a la rotación del campo magnético

Muchisimos más detalles y tópicos que los cubiertos en este artículo los están esperando para que los descubran sin embargo, si han entendido los principios básicos expuestos aquí, estarán bien posicionados para comenzar el diseño, mantenimiento y diagnóstico de hardware controladora de paso a pasos y su software asociado.

*Nota: El presente trabajo está basado y traducido del artículo de Dan Simon titulado “Get Your Motor Running” y publicado en http://www.embedded.com año 2003.*

Saludos,
Marcelo.

Adjunto:
Guia Motores paso a paso, funcionamiento y control por computadora y sin ella.


----------

