Está en la página 1de 10

Asunto: Control de motores paso a paso con un microcontrolador PIC

Publicado: 28 Mar 2011, 01:30


Fundador y
Administrador del
Sitio

Registrado: 06 Dic 2010, 12:31


Mensajes: 580
Control de motores paso a paso con un microcontrolador PIC
Para aplicaciones donde la medicin precisa de la posicin de un motor "del rotor es
fundamental, un motor paso a paso es la mejor opcin. Los motores de pasos funcionan
de manera diferente de otros motores, sino que la tensin que se aplican y el rotor
girando suavemente, motores paso a paso a su vez en una serie de impulsos elctricos a
las bobinas del motor. Cada pulso hace girar el rotor por un grado exacto. Estos pulsos
se denominan "pasos", de ah el nombre de "motor paso a paso".
Los grados por impulso se establece en la fabricacin del motor, y se proporciona en las
hojas de especificaciones para ese motor. Datasheets para ser exactos, estos pueden ir
desde los movimientos ultra-fino de una fraccin de un grado (es decir, 0.10 grados), a
pasos ms grandes (es decir, 62,5 grados).
En este post explicare lo que pueda, los principios de funcionamiento de motores paso a
paso llamados STEPPER, y le daremos instrucciones sobre la forma de controlarlo a
travs de un microcontrolador PIC16F84.
Cmo Funcionan los motores de paso a paso STTEPER?
Los motores paso a paso consisten en un eje de rotacin del imn permanente, llamado
rotor, y los electroimanes en la parte fija que rodea el motor, llamado estator.
la imagen ilustra una rotacin completa de un motor paso a paso.

En la posicin 1, podemos ver que el rotor comienza a electroimn superior, que


actualmente est activo (tiene voltaje aplicado a la misma). Para mover el rotor de las
agujas del reloj (CW), el electroimn superior se desactiva el electroimn y la derecha
se activa, provocando el movimiento del rotor 90 grados en sentido horario, alinendose
con el imn activa. Este proceso se repite de la misma manera en el sur y el oeste
electroimanes hasta que lleguen de nuevo a la posicin inicial.

En el ejemplo anterior, se utiliz un motor con una resolucin de 90 grados o con fines
de demostracin. En realidad, esto no sera un motor muy prctico para la mayora de
las aplicaciones. La resolucin del motor de pasos promedio - la cantidad de grados gira
por impulso - es mucho ms alto que esto. Por ejemplo, un motor con una resolucin de
5 grados se movera su rotor de 5 grados por paso, lo que se requiere 72 pulsos (pasos)
para completar una rotacin completa de 360 grados.
Es posible que el doble de la resolucin de algunos motores por un proceso conocido
como "medio paso". En lugar de cambiar el electroimn siguientes en la rotacin de uno
en uno, con la mitad de refuerzo que a su vez en ambos electroimanes, causando una
atraccin igual entre, lo que duplica la resolucin.
Como se puede ver en la figura 2 , en la primera posicin slo el electroimn superior
es activo, y el rotor se extrae por completo a ella.
En la posicin 2, tanto la parte superior y derecha electroimanes se activa, haciendo que
el rotor se posicione entre los dos polos activo. Por ltimo, en la posicin 3, el imn
superior se desactiva y el rotor se extrae totalmente a la derecha.
Este proceso puede repetirse para la rotacin completa.

Hay varios tipos de motores paso a paso. Los motores de 4 hilos paso a paso contiene
slo dos electroimanes, sin embargo, la operacin es ms complicada que las que tienen
tres o cuatro imanes, ya que el circuito de conduccin debe ser capaz de invertir la
actual despus de cada paso. Para nuestros propsitos, vamos a utilizar un motor de 6
cables.
A diferencia de nuestros motores ejemplo que gira 90 grados por paso, del mundo real
de los motores emplean una serie de mini-polos en el estator y un rotor para aumentar la

resolucin. Aunque esto pueda parecer para aadir ms complejidad al proceso de


conduccin de los motores, el funcionamiento es idntico al grado motor 90 simples
que usamos en nuestro ejemplo.
Un ejemplo de un motor multipolar se puede ver en la Figura 3 . En la posicin 1, el
polo norte del rotor de imn permanante est alineado con el polo sur del estator del
electroimn.
Tengan en cuenta que mltiples posiciones son alineados a la vez. En la posicin 2, el
electroimn superior se desactiva y el siguiente a su izquierda inmediata se activa,
provocando el giro del rotor una cantidad precisa de grados. En este ejemplo, despus
de ocho pasos de la secuencia se repite.

El motor de pasos especficos que estamos utilizando para nuestros experimentos (ST02: 5VDC, 5 grados por paso) tiene 6 cables que salen de la caja. Si seguimos la figura
5 , el equivalente elctrico del motor paso a paso, podemos ver que tres cables van a
cada uno la mitad de las bobinas, y que las bobinas de la bobina se conectan en parejas.
Esto es cierto para todas las fases y cuatro motores paso a paso.

Sin embargo, si no tienen un esquema equivalente para el motor que desean utilizar,
pueden hacer una tabla de resistencia para descifrar el misterio de las conexiones.
Hay un resistencia de 13 ohmios entre el alambre del centro - tap y cada cable final, y
26 ohmios entre los dos conductores final.
Estos cables procedentes de bobinas independientes no estn conectados, y por lo tanto
no sera leda en ohmios con el multimetro.

Primer Circuito paso a paso


Aqui tenemos el esquema de nuestro circuito de prueba.
Las salidas del PIC estn reforzadas con un bfer hex tipo 4050, y se conecta a un
transistor NPN.
El transistor utilizado, TIP120, es en realidad un Darlington NPN (se muestra como una
norma NPN). El TIP120 actua como interruptores de estado solido, el cual permite la
activacin de una bobina de un motor paso a paso una a la vez.

Debido a un aumento de induccin crea cuando una bobina se acciona la palanca, un


diodo 1N4001 norma general se coloca en cada transistor como se muestra en la figura,
proporcionando una forma segura de evitar la corriente inversa, sin daar el transistor.
Para los transistores TIP120, no es necesario usar un diodo externo, ya que estos vienen
incluidos en el interior de los transistores As que los diodos se muestra en el dibujo son
los diodos internos de los transistores TIP120.

La forma ms sencilla de operar un motor paso a paso con un PIC es con el patrn de
paso completo se muestra en la Tabla 1

Cada parte de la secuencia se convierte en un solo transistor a la vez, uno tras otro.
Despus de la secuencia se completa, se repite infinitamente hasta que la energa se
quita.

Aqui tienen el codigo fuente:

{-------------------------------}
' codigo fuente Enigma motor paso a paso
' creado parala comunidad electronica
Symbol delay = B0 'usamos la variable B0 como retrazo
delay = 25 'le asignamos 25 milisegundos
loop: 'iniciamos un ciclo repetitivo
high 0 'Pone Q1 encendido
pause delay 'pausa de 25 milisengundos
low 0 'apaga Q1
high 1 'enciende Q2
pause delay 'pausa de 25 milisengundos
low 1 'apaga Q2
high 2 'enciende Q3
pause delay 'pausa de 25 milisengundos
low 2 'apaga Q3
high 3 'enciende Q4
pause delay 'pausa de 25 milisengundos
low 3 'apaga Q4
goto loop 'repetir ciclo indefinidamente
{-------------------------------}
el siguiente codigo fuente que les dejo permitira al usuario presionar unos botones
pulsadores que modifiquen la velocidad y el sentido de giro, es excelente para montarlo
en un elevador...
{-------------------}
'este programa cambia de velocidad y direccion de giro
'Creado Por Enigmaelectronica para la comunidad Electronica
Symbol delay = B0 'asignamos la variable B0 como retrazo
delay = 100 'asignamos un retrazo de 100 milisegundos
forward: 'condicion y ciclo hacia adelante
high 0 'enciende Q1
pause delay 'espera un tiempo
low 0 'apaga Q1
high 1 'enciende Q2
pause delay 'espera un tiempo
low 1 'apaga Q2
high 2 'enciende Q3
pause delay 'espera un tiempo
low 2 'apaga Q3
high 3 'enciende Q4
pause delay 'espera un tiempo

low 3 'apaga Q4
goto check 'revisar el pulsador
reverse:
high 3 'Enciende Q4
pause delay 'espera un tiempo
low 3 'apaga Q4
high 2 'enciende Q3
pause delay 'espera un tiempo
low 2 'apaga Q3
high 1 'enciende Q2
pause delay 'espera un tiempo
low 1 'apaga Q2
high 0 'enciende Q1
pause delay 'espera un tiempo
low 0 'apaga Q1
goto check 'revisar el pulsador
check: 'menu pulsador
if pin4 = 0 then timeup
if pin5 = 0 then timedn
if pin6 = 0 then halt
if pin7 = 0 then reverse
goto forward 'si no se pulsa ir hacia adelante
timeup: 'hacia adelante
delay = delay + 5 'incremento de retrazo de 5 milisegundos
pause 50 'espera un tiempo de 50 milisegundos
if delay > 250 then max
if pin4 = 0 then timeup
goto check 'revisar el pulsador
timedn: 'hacia atras
delay = delay - 5 'disminuir retrazo de 5 milisegundos
pause 50 'espera un tiempo
if delay <20 then min
if pin5 = 0 then timedn
goto check 'revisar los pulsadores
halt:
if pin6 = 0 then halt
goto check
max:
delay = 245 'aumentar retrazo
goto check
min:
delay = 25 'disminuir retrazo a

goto check 'revisar los interruptores


{----------------------------------}
Como se puede ver al observar el esquema (Figura 7) , los "interruptores" que se
utilizan en este circuito son pedazos de alambre de puente en un circuito.
Las entradas (B0-B3) se mantienen elevados a travs de Vcc a travs de una resistencia
de 10K.
Estos interruptores son activados por tierra a travs de otro pedazo de cable de puente.
Una nota sobre los programas:
la demora mnima utilizada en los programas fue de 25 ms.
Dependiendo de la velocidad de reloj de tu cristal, 25 ms puede ser demasiado rpido o
demasiado lento para el movimiento del rotor. Si estas teniendo problemas para
conseguir que estos programas funcionen, esta es una causa ms probable.

bueno eso es todo quizamas adelante ponga como hacerlo por potenciometros o por lo
menos mejorar el programa....
un saludo y espero que el que me pidio este tutorial en mi libro de visitas le haya
gustado y le haya servido de algo.....
Saludos!!!
si pueden mejorarlo entonces avisenme...

También podría gustarte