Control de motores Paso a Paso por el Puerto paralelo del PC

 
Breve introduccion sobre el control de motores paso a paso mediante el puerto paralelo de un PC.
Esquema de un motor PAP Unipolar de cuatro Fases:
 
 
 
 
El motor se comporta como un conjunto de cuatro electroinames que al activaros orientan el rotor en la posicion indicada. De esta forma tenemos un control exacto de la posicion del rotor y por consiguiente, de su velociad.
 
En los esquemas siguientes se representa dos opciones de manipulacion de las tres que permiten estos motores.
 
 
Simple Activacion:
 
 
Doble Activacion:
 
 
 
 
Ambas nos permiten un control del rotor de 90º. Existe una ultima posibilidad que consiste en la combinacion de ambos sistemas, con lo que conseguimos controlar un angulo de 45º, aumentando asi en el doble la presicion de control. el inconveniente es que en el modo de simple activacion el motor tiene menor potencia.
 
Como el esquema de funcionamiento es sencillo, pasamos a la forma de controlar dichos bobinados desde el pc.
Por el puerto paralelo del pc podemos enviar 1BYTE a la vez, la velocidad a la que esto se puede realizar es aproximadamente a 30000 BYTES por segundo, mucho mas de lo que es capaz de girar un motor de estas caracterieticas, con lo que deberemos frenar la velocidad de envio de datos.
 
La filosofia de control no es mas compleja que la de tener que encender y apagar cuatro bombillas mediante interruptores. Dichos interruptores no son mas que los BITS de cada BYTE que enviamos por el Puerto Paralelo del PC.
 
 
Esquema de conexion del puerto paralelo:
 
 
 
 
Los pins que utilizaremos seran los que van numerados desde D0 a D7 y los que estan en verde son de masa. La tension de salida del puerto paralelo es de 5V y soporta una intensidad maxima de 20mA.
 
 
Relacion entre los Bits de cada Byte enviado y los pins de la clavija del puerto paralelo:
 
PIN
D7
D6
D5
D4
D3
D1
D1
D0
BIT
7
6
5
4
3
2
1
0
 
 
Para controlar un motor PAP Unipolar de Cuatro Fases necesitamos enviar una secuencia de BYTES por el puerto paralelo de la siguiente forma:
 
BIT
7
6
5
4
3
2
1
0
 
BOBINADO
       
2
3
4
1
 
DEC
HEX
Pos0
0
0
0
0
0
0
0
1
1
0x01
Pos1
0
0
0
0
0
0
1
1
3
0x03
Pos2
0
0
0
0
0
0
1
0
2
0x02
Pos3
0
0
0
0
0
1
1
0
6
0x06
Pos4
0
0
0
0
0
1
0
0
4
0x05
Pos5
0
0
0
0
1
1
0
0
12
0x0C
Pos6
0
0
0
0
1
0
0
0
8
0x08
Pos7
0
0
0
0
1
0
0
1
9
0x09
 
 
Por consiguiente, mandando los distintos valores por el puerto paralelo, conseguimos activar o desactivar los bobinados en la secuencia deseada. Para mandar datos por el puerto paralelo he utilizado el lenguaje de programacion C, con el compilador BorlandC 4.0. El codigo basico para enviar datos por el puerto paralelo es el siguiente:
 
 
PROGRAMA EN C
#include <stdio.h>
#include <dos.h>
#define Puerto    0x378  /* LPT1 */
void main (void) {
 unsigned char Valor;         /* Valor es el indicado en la tabla anterior */
 Valor = 0x00;
 outportb(Puerto, Valor);   /* Enviamos el dato Bits al puerto LPT1 -> todo apagado*/
 delay(1000);                     /* Esperamos 1 segundo */
}
 
 
UTILIZANDO EL PROGRAMA DEBUG DEL DOS
C:\>debug
 -o 378 5a                 "Envia el byte 0x5a Hexadecimal al puerto LPT1"
 -q                             "Sale del programa"
 C:\>
 
 
Circuito para controlar el estado del puerto paralelo:
 
 
 
 
Conectando un diodo led con una resistencia de 470 ohm a cada pin del puerto paralelo podemos comprobar visualmente el estado del puerto paralelo y asi debuguear el correcto funciaonmiento del progama.
 
 
APLICACION PRACTICA
 
 
 
 
Vamos a controlar el motor que llevan algunas de las disketteras antiguas de 5-1/4. son pequeños motores PAP de cuatro fases unipolares. Se distinguen del resto por tener cinco cables, uno de comun y cuatro de fases. Su consumo esta en torno a los 200ma y una tension de trabajo de 12V. Recordar que el puerto paralelo trabaja a 5V y como maximo 20ma por lo que no podemos conectarlos directamente. Para ello utilizaremos como circuito puente entre el motor y el puerto que sera el encargado de aumentar la potencia de nuestro puerto paralelo. El integrado es el ULN2003 que cuesta unas 65pts. y su conexion es tan sencilla como indica el esquema:
 
 
 
 
Prestar atencion al diodo zener que se debe utilizar como medida de proteccion contra las inducciones que se producen en los bobinados, evitando asi las fuertes corriente inversas generadas. El zener es de 12V 0.5W. El integrado acepta un consumo maximo de 500mA por lo que no sera capaz de controlar nada que supere dicho consumo. Para un entendimiento mas global, el integrado se comporta como una serie de 7 reles electronicos.
 
Para mas informacion enviadme un e-mail e intentare responder lo mas rapidamente posible...
 
Detalle de una tarjeta para puerto paralelo extra
y un controlador para dos motores PAP
ENLACES A PAGINAS RELACIONADAS:
www.doc.ic.ac.uk/~ih/doc
 
 
 
 
 
 
 
En la pagina de Descarga teneis el programa que controla dos motores PAP con el controlador aqui explicado...
En la Pagina de Tecnica hay una explicacion del Software de control de los motores con este controlador...