CIRCUITOS DIGITALES
Control de Motores PAP mediante puerto ISA
Lipuma Daniel F.
RESUMEN
En este práctico estudiamos la implementación de motores paso a paso para realizar movimientos controlados por teclado por puerto ISA mediante programación realizada en lenguaje Assembler sobre procesadores Intel. Por puerto ISA
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
2
INTRODUCCION
A continuación se mostrara como se realizara el control de los motores paso a paso, para ello se empleará una placa de interfaz entre la PC y el exterior por el puerto ISA
El problema planteado es que al correr el programa uno pueda controlar en dos ejes X-Y dos motores paso a paso mediante las flechas de dirección arriba, abajo, derecha e izquierda, al presionar por primera vez que comience a moverse en la dirección indicada, y al dejar de presionar se detenga
El programa se logra bajo la utilización de interrupciones, la programación en el debug de Windows 95, en lenguaje Assembler, una placa de interfaz y un procesador Pentium I
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
3
DIAGRAMA DEL CIRCUITO
Diagrama esquemático del circuito de interfaz
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
4
Placa de interfaz (Vista superior)
Esta placa de interfaz será colocada en el puerto ISA de la placa madre. Posibilitándonos tener puertos de salida y entrada
Bus ISA
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
5
CIRCUITO
Nuestra placa de interfaz posee un comparador de 8 bits 74LS688 con el cual elegiremos la dirección 0300 mediante el dip-switch con el cual pondremos a 1 o 0 nuestros bits del address bus del bit A15 al A0.
Un 74LS138 que funciona como decodificador seleccionando líneas de lectura o escritura, que entraran por el 74LS244 para el caso de lectura y el flipflop 74LS374 para el caso de escritura.
Como nuestro practico esta basado en operaciones de salida, usaremos 2 74LS374 junto a 2 ULN2803 que nos darán la posibilidad de manejar mayor potencia. Teniendo así 16 bits de control.
MOTORES PASO A PASO
El motor PaP es un dispositivo electromecánico que convierte una serie de impulsos eléctricos en desplazamientos angulares discretos, lo que significa es que es capaz de avanzar una serie de grados (paso) dependiendo de sus entradas de control. El motor paso a paso se comporta de la misma manera que un convertidor digital-analógico y puede ser gobernado por impulsos procedentes de sistemas lógicos.
Este motor presenta las ventajas de tener alta precisión y repetibilidad en cuanto al posicionamiento. Entre sus principales aplicaciones destacan como motor de frecuencia variable, motor de corriente continua sin escobillas, servomotores y motores controlados digitalmente.
Suelen ser clasificado en dos tipos, según su diseño y fabricación pueden ser Bipolares o Unipolares
En este práctico usaremos los del tipo Unipolar, estos tienen sus ventajas, a pesar de tener más de 4 cables son más fáciles de controlar, esto se debe a que tienen un terminal común a ambas bobinas.
Lo que necesitamos ahora es un circuito para manejar este motor, y lo vamos a lograr con un ULN2003
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
6
Se trata de un array de transistores Dárlington capaz de manejar hasta 500mA en sus salidas, que sera alimentado con 12 Volts de la fuente de AT de la PC
La secuencia para poner en marcha el motor paso a paso es de la siguiente manera
En el orden indicado el motor gire en un sentido, si se desea que gire en sentido opuesto, sólo se debe invertir dicha secuencia. Tabla de valores que cargaremos y que será recorrida por un puntero
DIAGRAMA EN BLOQUE DE LA PROGRAMACIONControl de Motores Paso a Paso en 2 ejes - Digitales III
Página
7
Limpio el Registro AL
Inicio
Espero interrupción por tecladoINT 21
Con servicio de ECO en pantalla
Interrupción
Abajo
IzquierdaTesteoTecla
Muevo tabla de Valores con XLAT
Rutina de demora
Salgo por dirección
300
Testeo Tecla
Arriba
Salgo por dirección
301
Salgo por dirección
300Salgo por dirección
301
Derecha
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
8
PROGRAMA
INICIO SUB AL, AL Limpio Registro Al
MOV AH,01
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
9
INT 21 Muevo valor ASCII de tecla a parte baja de AH
CMP AL,4D Veo si es tecla derecha
JZ PUNTEROA
CMP AL,4B Veo si es tecla izquierda
JZ PUNTEROB
CMP AL,48 Veo si es tecla arriba
JZ PUNTEROC
CMP AL,50 Veo si es tecla abajo
JZ PUNTEROD
JMP INICIO
PUNTEROA MOV DX,300 Rutina para moverme en mi tabla de valores de arriba hacia abajo
MOV CL,08
MOV BX,1000
MOVERA MOV AL,CL
XLAT
OUT DX,AL
CALL RETARDO
DEC CL Motor A girara a la derecha
JNZ MOVERA
JMP INICIO
PUNTEROB MOV DX,300 Rutina para moverme en mi tabla de valores
de abajo a arribaMOV CL,0
MOV BX,1000
MOV AL,CL
XLAT
OUT DX,AL
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
10
CALL RETARDO
INC CL Motor A girara a la izquierda
CMP CL,08
JNZ MOVERB
JMP INICIO
PUNTEROC MOV DX,301 Rutina para moverme en mi tabla de valores de arriba hacia abajo
MOV CL,08
MOV BX,1000
MOVERC MOV AL,CL Motor B girara a la derecha
XLAT
OUT DX,AL
CALL RETARDO
DEC CL
JNZ MOVERC
JMP INICIO
PUNTEROD MOV DX,301 Rutina para moverme en mi tabla de valores de abajo a arriba
MOV CL,0
MOV BX,1000
MOVERD MOV AL,CL Motor B girara a la izquierda
XLAT
OUT DX,AL
CALL RETARDO
INC CL
CMP CL,08
JNZ MOVERD
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
11
JMP INICIO
PUSH CX Rutina de demora entre cada paso del motor
PUSH DX
MOV CX,0020
CARGAR MOV DX,FFFF
DECDX DEC DX
JNZ DECDX
DEC CX
JNZ CARGAR
POP DX
POP CX
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
12
IMPLEMENTACION
HARDWARE UTILIZADO
Resistencias
6x 10KΩ
MicroprocesadorIntel Pentium
I
Capacitores1x
470uF
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
13
Integrados 1x 74LS688/ 2x 74LS138 /1x 74LS244 2x 74LS374 / 2 x ULN2803
Diodos 8 x 1N4048
Varios Dip-Switch de 6 pines
CONCLUSION
Aprendimos a usar, y comprender el uso de los puertos como salidas y entradas, el uso de las interrupciones, conjugándolo con el uso de tablas y subrutinas para lograr satisfactoriamente un proyecto que funciona correctamente
Control de Motores Paso a Paso en 2 ejes - Digitales III
Página
14