control de motores paso a paso mediante puerto isa ( assembler/intel)

17
CIRCUITOS DIGITALES Control de Motores PAP mediante puerto ISA Lipuma Daniel F.

Upload: daniel1800

Post on 24-Jul-2015

633 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

CIRCUITOS DIGITALES

Control de Motores PAP mediante puerto ISA

Lipuma Daniel F.

Page 2: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 3: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 4: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

DIAGRAMA DEL CIRCUITO

Diagrama esquemático del circuito de interfaz

Control de Motores Paso a Paso en 2 ejes - Digitales III

Página

4

Page 5: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 6: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 7: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 8: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 9: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 10: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 11: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 12: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 13: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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

Page 14: Control de motores paso a paso mediante puerto ISA ( Assembler/INTEL)

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