EL MOTOR PASO A PASO
en inglés Stepper Motor. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Introducción.![]()
Asumimos cierto conocimiento básico por
parte del lector en conceptos básicos de programación y electrónica. Lea con atención y sin prisas el
contenido de este tutorial, nos proponemos describir cómo funcionan los motores paso a paso, de
forma que se entienda, por lo que seguiremos estos puntos:
Los motores paso a paso o también conocidos como motores de paso, han
estado con nosotros desde los años 60. El inconveniente que
![]()
Las principales
aplicaciones donde se pueden encontrar los motores de paso son: robótica,
tecnología militar y aeroespacial, radar, antenas parabólicas, en
control de discos duros y flexibles, en unidades de CD-ROM o de DVD e
impresoras, en sistemas informáticos, manipulación y posicionamiento de
herramientas y piezas en general.
Constitución de un motor de paso
Los
motores eléctricos de corriente alterna como los de continua, están
constituidos básicamente por un estator y un rotor que gira libre y ambos
están normalmente bobinados, su funcionamiento se basa en la fuerza que generan los campos
electromagnéticos creados por la circulación de
corrientes eléctricas por sus bobinados. En cambio, los motores paso a paso, en la
actualidad están constituidos por unas armaduras como estator en las que
se dispone un bobinado único y en otros casos el bobinado dispone de una
toma intermedia denominada común, por otro lado está el rotor
habitualmente compuesto por un imán permanente. En este tutorial
sólo contemplaremos el motor paso a paso de imán permanente, de seis cables o
cinco, llamados unipolares.
![]() Fig. p1 ![]()
Esto
se puede describir mejor con una imagen, véase la figura p2, en la cual
se puede apreciar lo descrito anteriormente. Podemos ver las dos
armaduras (estator) y sus bobinados, veremos además que se pueden
obtener dos modos de funcionamiento de este tipo de motor, debido a que
sus bobinados están provistos de una toma media o común. El modo
bipolar, no contemplaría la mencionada toma común, por lo que
tendríamos un bobinado compuesto por F1-F3 y otro por F2-F4. El modo
unipolar contempla el común y el bobinado F1, el común y F3, el común y
F2 y el común y F4, un total de cuatro bobinas.
![]() Fig. p2
Los motores paso a paso pueden ser muy
precisos, la característica principal de estos motores es el hecho de
poder moverlos un paso por cada pulso que se le aplique. El grado de
precisión de este paso puede variar desde los 90° por pulso, es decir, que
se necesitarán 4 pasos para desplazar 90°, hasta pequeños
pasos de tan solo 1.8°, es decir, se necesitarán 200 pulsos para completar un giro de 360°.
Esto significa, a más pasos, más precisión.
En el párrafo anterior está la respuesta a la pregunta como alguno hace de
¿cuantas vueltas o
revoluciones da un motor de paso? una repuesta sería; recuerda
que se llaman paso a paso de ahí su nombre y aunque no es su cometido, pueden girar más de 360º, incluso girar a bajas
revoluciones, los motores de los discos duros de última generación
rebasan fácilmente las 7200 rpm. y aún no está todo dicho .
Otra
particularidad de estos motores es que, al
contrario de lo que ocurre con los motores eléctricos
tradicionales en
los que su rotor queda libre cuando no están excitados, en éstos
como
digo, su rotor está bloqueado cuando se encuentra activo y
permanece semifijo debido a la reluctancia magnética que ejerce el imán
permanente
del rotor sobre los polos del estator.
Por cierto, cuando se disponga de un motor p. a. p. usado o bien
nuevo y no disponemos de sus hojas de datos. Es posible
reconocer los polos de un motor de paso y el cable común en un motor unipolar de 5 o 6 cables, siguiendo las instrucciones
que se detallan a continuación:
Siguiendo la figura p4, un primer
examen visual de los cables puede indicarnos cual es el común (si hay
5) o el par de comunes (caso de 6), también podemos utilizar una
tensión de 5Vcc, probando el desplazamiento del rotor al aplicar el
positivo al común y el negativo a uno de los cables, marcamos dicho
cable con una señal y la dirección, a continuación procedemos con
otro cable, lo marcamos y dirección, así podemos averiguar los cables
y trazaremos el orden de los bobinados para su activación. Utilizando
un polímetro podremos chequear la resistencia entre pares de cables, el
cable común por ser la toma media del bobinado, será el que presente
la mitad de la resistencia entre él y el resto de los cables.
![]() Funcionamiento del motor de paso
Vamos a tratar de describir el
funcionamiento de este tipo de motores de paso, como ya se ha dicho,
básicamente están compuestos por bobinados que se pueden activar de
forma independiente. Sugerimos que se tenga en mente el esquema
de la figura p2, ya que a él nos referiremos en su seguimiento.
Para comprender mejor el funcionamiento vamos a
dividir en dos partes el modo de activar estos bobinados.
La
disposición de varios bobinados como estator en los motores de imán
permanente, permite diferentes formas de agrupar para su alimentación dichos
bobinados. Estas formas de conexión permiten clasificar los motores
paso a paso en dos grupos:
Los motores del primer grupo no lo vamos a considerar
por lo que directamente entramos en el grupo de los unipolares. Tengamos en cuenta que los motores
unipolares de 6 u 8 hilos, podremos conectarlos como motores bipolares, si
no utilizamos las tomas centrales o comunes, en cambio no ocurre lo mismo
con los de 5 hilos. Así pues, además de los hilos extremos de los bobinados hay otros
terminales que corresponden a las tomas intermedias de las bobinas, los
cuales se conectan directamente al positivo de la fuente de alimentación
para su correcto funcionamiento.
Aclarados estos puntos, pasaremos a
describir con más profundidad su funcionamiento por lo que podemos
considerar los siguientes puntos:
De modo que se puede decir
que en el primer paso, activaríamos F1, que hará girar el rotor 90º, en el segundo paso F2, lo que
produciría un salto del rotor sobre su eje de 90º hasta obtener el
máximo flujo magnético, el tercer paso activaríamos F3, lo que haría
girar otros 90º el eje y por último activaríamos F4, completando así
los 90º restantes del giro de 360º. Analicemos más detenidamente esto a continuación.
De forma que en el primer paso, al conectar la bobina
F1, el campo electromagnético generado al circular la corriente
eléctrica por el estator, el rotor girará como máximo 90º, hasta
equilibrar su flujo magnético orientando sus respectivos polos opuestos
con el estator. En el segundo paso, conectaremos la bobina F2 y como respuesta el
rotor volverá a girar esta vez 90º. El tercer paso, esta vez conectemos la
bobina formada por F3, lo que hará girar de nuevo 90º más en la
misma dirección y por último al conectar F4, se producirá un nuevo
paso de 90º con lo que se habrá completado el giro de 360º. Observar
que hemos necesitado 4 pasos (o pulsos) para lograr los 360º.
Quizás
en la figura p3 se puede comprender mejor la secuencia de lo descrito.
Si nos fijamos en la primera línea de la figura, veremos que, otra
posible secuencia sería conectar en el primer paso los bobinados F1-F2
en el segundo paso F2-F3, en el tercer paso F3-F4 y en el cuarto paso
F4-F1.
![]() Fig. p3
Con en estas secuencias, si
mediante un sistema eficaz unimos ambas secuencias, podemos entender que
hemos logrado una secuencia de 8 pasos para completar un giro, a todas
luces se comprende que habremos conseguido una mayor exactitud a la hora de
posicionar el eje de nuestro motor de paso.
Desde
el punto de vista de su construcción diremos que existen 3 tipos de motores paso a
paso:
![]() Parámetros de los motores paso a paso.
Conozcamos el significado de algunas de las principales
características y parámetros que se definen sobre los motores paso a paso:
Todos estos parámetros que acabamos de
definir, se miden en miliNewtons por metro cuadrado.
![]() Control de los motores paso a paso.![]()
Para realizar un control de estos motores, será necesario como se ha descrito, generar
una secuencia determinada de impulsos. Además, es necesario que estos impulsos
sean capaces de entregar la corriente necesaria para que los bobinados del
motor se exciten, en la figura de la derecha, se muestra el diagrama de bloques de un
sistema híbrido de control para motores paso a paso.
Se pueden apreciar los
cuatro transistores de potencia con sus diodos de protección para evitar
en lo posible la f.c.e.m. (fuerza contra-electromotriz) generada en las bobinas, por el efecto de los
campos electromagnéticos implicados.
En cuanto al modo de activar la carga se realiza en la secuencia Q1-Q3 y Q2-Q4, esta es una de las
posibles formas de realizar una etapa de potencia. En la figura p4, para el
circuito de potencia se ha utilizado un circuito integrado el ULN2003, se
trata de un dispositivo con encapsulado DIL (dual in line), que alberga
siete transistores de hasta 0'5A, que para muchos de los casos es
suficiente al igual que nuestro caso. La diferencia entre el anterior y el
ULN2803
es que éste tiene 8 pares de transistores en darlington. En la
figura que sigue, la patilla 10 de este dispositivo normalmente se
conecta al positivo para reducir los efectos de los bobinados del motor.
![]() Fig. p4
Ahora, vamos a describir el circuito de
control, la etapa que se encarga de realizar la secuencia de los impulsos
que activarán los transistores de la etapa de potencia. El esquema
completo del generador de impulsos en la secuencia que hemos descrito se puede apreciar a
continuación, figura p5. En esta figura destacamos
dos partes, las cuales están enmarcadas para realzar su relevancia.
![]() Fig. p5 ![]()
Este oscilador nos parece más
'robusto', se trata de un circuito integrado al alcance de muchísima gente por sus prestaciones y costo,
destaca su sencillez de manejo y que el lector ya habrá experimentado con él en otras aplicaciones. Utilizar
el CD4017, es debido igualmente a su simplicidad a la hora de obtener unas
salidas consecutivas de un pulso de igual amplitud que el aplicado a la entrada.
![]() Fig. p6
Por último destacamos la etapa de registro
de señales para la salida hacia el sistema de potencia elegido,
corresponde al área enmarcada de la derecha figura p5. Esta etapa puede lograrse de
distintas formas, siempre atendiendo a los medios que dispongamos para su
realización, un modo es el de la figura p5. En la figura p7, se ha optado
por utilizar el circuito integrado ULN2003, que puede sustituirse por el
ULN2803 (8 transistores) y a su vez este circuito
puede sustituirse por el viejo L293B, cuyo esquemático se muestra en la
anterior figura p6.
![]() Fig. p7
Repasando
viejos esquemas y distintos circuitos que uno guarda en ciertos momentos,
encontré uno que para ilustrar el presente trabajo creo que es idóneo
figura p8.
![]() Fig. p8
Como
se puede ver es bastante sencillo y puede sernos bastante útil en muchas
ocasiones ya que no exige muchos componentes para obtener un control
relativamente fácil y lo mejor es que es económico ya que los sistemas
comerciales son bastante más caros. Este circuito está hecho por
componentes normalizados y puede adaptarse fácilmente para ser controlado por
una computadora.
Pueden utilizarse transistores para Q1-Q4 de mayor o menor potencia dependiendo del motor a utilizar y
también intercalar el ULN2003. Por cada impulso de reloj que apliquemos a
la entrada PASO, el motor avanzará un paso y mediante el conmutador S1,
podremos decidir el sentido de giro.
![]() Control de un motor paso a paso con el PC.
Por cierto, todos estos sistemas de control para
motores de paso descritos, una vez montados, experimentados y puestos a punto, son muy eficientes sin
ninguna duda, pero en este tutorial no nos paramos aquí y vamos a abordar otro sistema de control
para este tipo de motores realizado desde la consola o teclado de nuestra
computadora personal o PC.
Este tutorial pretende,
cubrir en parte la necesidad de una guía práctica para la adquisición
de datos y cierto control de dispositivos como una alternativa al uso de
los PLC (Controladores Lógicos Programables) y tarjetas de Adquisición
de Datos, de modo que los interesados puedan adquirir experiencias con
sistemas en tiempo-real. Pretendemos dar a conocer algunos aspectos
relevantes del puerto paralelo, de modo que se pueda utilizar como una
interfase de entrada/salida que funcione de modo subordinado a nuestras
rutinas de software, los puertos de E/S se constituyen en el medio por el
cual el microprocesador de una computadora se comunica con el mundo de su
entorno.
El puerto paralelo de un computador personal (PC) es ideal
para ser usado como herramienta para control de motores, relés, LED's,
etc. El cual posee un bus de datos de 8 bits (pin 2 a 9) y muchas señales
de control, algunas de salida y otras de entrada que también pueden ser
usadas fácilmente. Las computadores
generalmente poseen solo uno de estos puertos (LPT1) pero con muy poco
dinero se le puede adicionar una tarjeta con un segundo puerto paralelo
(LPT2).
Para lo cual tendremos que, revisar algunos
conceptos sobre este elemento, en otros casos aprenderemos algunas de las posibilidades que nos
ofrece ésta que, puede ser la herramienta que sirve para 'todo', estamos
hablando del más conocido como PC. Una aclaración, el concepto de
entrada/salida es respecto del punto de vista del PC.
Lo que necesitamos es la consola en
modo DOS (en la mayoría de los casos será suficiente), desde la que trataremos los programas en algunos casos a nivel
de ensamblado en código máquina, puede que alguno disponga de otra
herramienta como algún programa más sofisticado que permita hacer lo
mismo desde una interfase más 'amigable'.
De todos
modos el tratamiento de datos para el control será similar. Antes de discutir el
sistema de control y para los que no tengan muy claro el cometido del bus de salida
de una computadora personal (PC), creemos que es conveniente revisar al
menos teóricamente el bus paralelo que utilizamos normalmente para la
impresora llamado también, puerto paralelo de impresora LPT.
Como hemos dicho mediante el PC, es un modo adecuado de controlar
este tipo de motores, con ayuda de un programa conseguiremos variar la
velocidad, sentido de giro y ángulo de giro a
placer; además también seremos capaces de programar una secuencia
compleja de
posicionamiento, velocidad y aceleración del motor. Pero lo dicho,
vayamos por partes.
RECORDATORIO.
![]() El puerto paralelo.
En la actualidad, muchos circuitos de control robótico usan el puerto paralelo del PC (conocido por Centronics) como medio
flexible y fácil para programarlos de manera rápida y
segura o como control y
procesamiento de sistemas, evitando con ello circuitería
complementaria. En ciertas aplicaciones también es habitual utilizar el
puerto serie mediante una interfase RS232, que en este tutorial no se
contemplará. Su apariencia es la siguiente:
![]() Fig. p9 - Conectores paralelo Centronics PC/Impresora ![]() Fig. p10 - Conector serie DB9
En resumen, el puerto paralelo está formado por las 17
líneas de señales y 8 líneas de tierra. Las líneas de señales, están
formadas por estos tres grupos de registros:
Todos estos pines no se controlan con un único
registro de datos sino que, un puerto Centronics (LPT1, LPT2, etc...)
dispone de 3 registros para poderlo controlar, esto es:
Para acceder a los tres registros de cada puerto al
programar, nos
hemos de referir a cada registro con una dirección de memoria implícita,
fijada por la BIOS al botar el ordenador.
Aunque aquí comentaremos las más usuales, sería conveniente
disponer de un algoritmo que nos informase de la dirección de memoria de
cada uno de los tres registros, ya que las máquinas difieren entre si.
Pero comentemos cada registro con detalle:
Enviar Datos (salida)
Como ya se ha comentado éste
registro es de sólo escritura, por lo que es el medio que nos
servirá para enviar datos a un dispositivo externo (motor pap) y
nunca para recibirlos, y estos datos serán enviados byte a byte. Las
direcciones más habituales, en hexadecimal de estos registros son para: LPT1 = 0x378 h o 78:03 (888
en decimal) y LPT2 = 0x278 h o 78:02 (632 en decimal). Esto se puede verificar fácilmente en el setup del PC o
bien en la ventana que generalmente muestra el PC en el momento del botado.
Por tanto, para escribir un
dato en el bus de salida de datos pines 2 a 9, debemos escribir el byte
correspondiente en la dirección hexadecimal 0X378 cuando trabajemos con
el LPT1 y 0x278 cuando trabajemos con el LPT2. Los distintos pins (bits)
de salida correspondientes al bus de datos no pueden ser escritos en forma
independiente, por lo que siempre que se desee modificar uno se deberán
escribir los ocho bits nuevamente.
Además, esta
función es la más conocida del puerto Centronics. Este registro
controla los pines del 2 al 9, que son las líneas de datos de D0 a D7. El
registro que lo controla es el siguiente:
Entrada Datos
Este es un registro de entrada, por tanto de sólo
lectura, o sea, sólo nos servirá para recibir datos procedentes
de un dispositivo externo y nunca para enviarlos, este registro es, únicamente
modificable desde el exterior y por hardware. Ciertamente, la recepción
de datos ya no resulta tan evidente como el envío, al parecer en los tiempos que
se planificó la norma del puerto Centronics, no se pensó en que el
dispositivo externo enviase datos de forma masiva al PC y solo se le dotó de 5
patillas al puerto para recibir datos del dispositivo externo.
Para leer el estado de
los pines de entrada (10, 12, 13 y 15) se debe realizar una lectura en
la dirección hexadecimal 0x379 (889 en decimal) si trabajamos con el
LPT1 o bien leer la dirección 0x279 (633 en decimal) si trabajamos con
el LPT2. La lectura será devuelta en un byte, en cuyo bit 6 corresponde
al pin 10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin
13 y el bit 3 corresponde al pin 15.
Queda claro que, disponemos de sólo 5 pines de
entrada, esto hace imposible que el PC en un
ciclo de reloj, reciba un byte completo, desde el dispositivo externo. Lo que se suele
hacer normalmente para salvar este problema, es usar un pin que haga las
funciones de control, por ejemplo BUSY, con el que por cada flanco
de subida o bajada, el PC interpretará que el dato de entrada es válido.
De esta manera, en cada ciclo, el PC recibe un Nibble del dato, lo que
conlleva la necesidad de dos ciclos para recibir un byte (8 bits).
Nota.-
Un byte, está compuesto como ya se sabe, por dos
partes de 4 bits llamadas Nibble alto y Nibble bajo, por ejemplo la dirección del puerto
0378h, la de menor peso 78h y la
de mayor peso 03h. Si consultamos desde DOS con el debug, la
dirección del puerto se encuentra en forma invertida (78 03), entonces la
dirección es 0378 en hexadecimal. Recordemos que para salir del
debug, es necesario escribir en la línea de
comandos, q y luego Intro.![]() Fig. p11 Registros de control (externo)
Este registro, contrariamente a los anteriores, es del
modo Lectura/Escritura y normalmente es usado para el caso concreto
donde el dispositivo externo es una impresora, aunque hay algún pin que
nos servirá, como ya veremos al describir las patillas.
Estos pines tienen funciones concretas, como descripción general podemos considerar una
impresora como dispositivo de salida.
Funcionamiento mediante el BIOS y el MS-DOS.
El BIOS (Basic Input Output
System) de IBM, en el momento del arranque o POST (Power On Seft Test) crea una
tabla con 4 direcciones base de puerto paralelo de impresora, en el espacio de
la memoria principal (RAM), estos se almacenan como 4 bytes empezando con la
dirección de memoria 408h. Durante el arranque, el BIOS comprueba si hay
puertos paralelos en las direcciones base 3BCh, 378h y 278h, en ese orden y
almacena la dirección base de cualesquiera que hayan sido encontrados en
posiciones consecutivas de dicha tabla. Las posiciones que no son usadas pueden
estar a 0, o como algunos BIOS lo hacen, le asignan la dirección del primer
puerto encontrado.
Algunos programas pueden
ignorar esta tabla, aunque ésta es utilizada al menos por el propio BIOS
(mediante la interrupción INT 17, de E/S de impresora) y por el MS-DOS. El BIOS
detecta estos puertos escribiendo AAh en el registro de datos (en la dirección
de E/S Base + 0) y luego, si en el registro de datos se lee AAh, significa que
hay un puerto activo.
Asignación de direcciones:
![]() Ensamblador.
A continuación se darán las funciones a utilizar para leer y escribir puertos en ensamblador. En Ms-DOS no
tenemos ningún tipo de restricción de acceder a los puertos. En Windows
3.x, 9x y Me tampoco hay restricciones normalmente a no ser que el puerto esté
bajo el control de un controlador de dispositivo virtual. En Windows NT, el sistema operativo tiene control
total sobre la máquina por lo que hay que pedir un permiso que se hace mediante un driver.
Los opcodes IN y
OUT permiten leer y escribir, respectivamente, datos a un puerto cualquiera. La secuencia a
seguir podría ser.
Para leer:
Y para escribir:
La interfase.
Para utilizar el puerto paralelo descrito, será
necesario procurarnos una interfase. Como puede que en el comercio no
encontremos este tipo de interfase, es preciso que nos dispongamos a realizar un
pequeño trabajo artesanal, pero no por ello, menos interesante y al mismo tiempo
efectivo ya que, será un elemento hecho a medida como el de la figura p12.
![]() Fig. p12 Click para ampliar
La placa de interfase, nos presenta tres conectores, uno de 8 salidas TTL, uno con 7 salidas de potencia (500mA) y
un tercero de cuatro entradas TTL. Es
importante tener en cuenta que las salidas TTL entregan una tensión de 5V y sólo
se les puede exigir un mínimo de corriente, apenas suficiente para activar un
transistor o bien unas pocas puertas TTL.
Un conector de alimentación de 3 patillas, una,
nos proporcionará los 15V de tensión máxima (ULN2003), otra patilla es masa o
GND y la tercera nos proporciona la seguridad ante la inversión al conectar el
conector o 'plug'. Un regulador 7805 regulará su salida a 5V (TTL), para los circuitos integrados U2 y U3.
La tensión de alimentación como se ha mencionado, se obtiene a
través del regulador U1 (7805), con el que dispondremos de los 5V máximos, típicos
de la TTL, para no dañar los distintos chips implicados. Para la potencia de
las salidas TTL, utilizaremos el ULN2003,
como ya se ha mencionado, se trata de una amplificación en corriente.
En teoría el funcionamiento es muy simple, sólo
se usan unos Buffer triestado del tipo TTL 74HC245 (U2, U3) para poder
conectarnos con seguridad al puerto paralelo y una matriz de transistores
Darlington ULN2003 (U1) para obtener una salida de potencia de 0'5 Amperios.
Las 3 entradas (Input 0-3), se ponen a
nivel alto al estar conectadas a VCC mediante la matriz de resistencias (Array
1). La función de estas resistencias hace que las entradas que no estén
utilizadas se verán siempre en estado "1", a esto se conoce como puesta en alto
o Pull-Up. Por
lo tanto, las entradas, sólo serán leídas como estado "0" cuando
sean conectadas expresamente a GND (masa).
En la salida del ULN2003 se han conectado una
resistencia de 270Ω y un diodo LED por cada salida,
para que nos sirva
de indicador visual del estado de las salidas en cada instante. Desde este
conector ya disponemos el control sobre el propio motor al que vamos a
controlar.
Con esto consideramos
que está bastante descrito el sistema utilizado en algunos casos cuando se
pretende el control de un motor de paso, para el que se aprovecha el puerto
paralelo del PC.
Un colaborador como es Javier
Pérez, ha tenido la gentileza de cedernos un tutorial del que es su autor, nos
parece apropiado para ilustrar con sus conocimientos nuestro 'sitio', lo que
hacemos público y notorio. Siga
este enlace
para descargar el tutorial mencionado.
![]()
Como las técnicas siguen su curso, en otro tutorial abordaremos
el uso de los modernos micros. CONTINUARÁ...
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario