Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PUERTO PARALELO
2.- FUNCIONAMIENTO
En este proyecto se presenta el desarrollo de un dispositivo electrnico para controlar
motores a pasos de tipo unipolar mediante comunicacin por el Puerto Paralelo. El
sistema, basado principalmente en una Laptop y un circuito de Interfaz, el cual recibe
comandos de control asociados a la direccin, velocidad y nmeros de pasos del
motor.
Una vez seleccionado la opcin por el teclado se inicia la accin por parte del motor, la
cual sera girar en sentido horario o antihorario, adems el conteo del nmero de pasos
que se desea que realice el motor. Adems se puede seleccionar tres velocidades
durante el giro horario o el antihorario.
Los motores a pasos son dispositivos que tienen como caracterstica principal el poder
hacer girar su eje en forma de pasos angulares discretos. Este tipo de motor es
empleado en aplicaciones en las cuales se requieren movimientos precisos. La
alimentacin elctrica para estos dispositivos se proporciona en forma de pulsos
secuenciales aplicados a las distintas bobinas que constituyen el motor.
Por cada pulso de energa aplicado a una de las bobinas, el eje realiza un
desplazamiento angular discreto permaneciendo fijo en dicha posicin hasta que otro
paso sea aplicado. Controlando la frecuencia a la que se aplican los pulsos de energa
es posible controlar la velocidad de giro del motor, asimismo, aplicando la secuencia de
pulsos en forma inversa, es posible cambiar el sentido de giro del dispositivo.
Existen en el mercado motores a pasos con distintos tamaos de paso, uno de los ms
comunes es el de 1.8. Este motor requiere realizar 200 pasos para tener una vuelta
completa.
Otra caracterstica que poseen estos motores es que su eje puede permanecer inmvil
en una posicin determinada siempre y cuando se mantengan energizadas las bobinas
que lo componen. Las caractersticas mencionadas hacen que este tipo de motores sea
muy empleado en aplicaciones de robtica, control numrico y en general en
situaciones en las cuales el posicionamiento preciso de un eje es importante.
Los elementos que conforman el sistema pueden ser agrupados en cuatro bloques
funcionales mismos que se muestran en el diagrama de la figura del punto 5 y que son
descritos en el resto de esta seccin.
3.1.1.- DEFINICION
En este conector:
8 lneas (pines) son para salida de datos (bits de DATOS). Sus valores son
nicamente modificables a travs de software, y van del pin 2 (dato 0, D0) al pin
9 (dato 7, D7).
5 lneas son de entrada de datos (bits de ESTADO), nicamente modificables a
travs del hardware externo. Estos pines son: 11, 10, 12, 13 y 15, del ms al
menos significativo.
4 lneas son de control (bits de CONTROL), numerados del ms significativo al
menos: 17, 16, 14 y 1. Habitualmente son salidas, aunque se pueden utilizar
tambin como entradas y, por tanto, se pueden modificar tanto por software
como por hardware.
las lneas de la 18 a la 25 son la tierra.
03BCh
0378h
0278h
Figura 2.9
3.2.1.- DESCRIPCION
Figura 2.5
3.2.2.- ESPECIFICACIONES
Figura 2.6
Son matrices de transistores Darlington de alta tensin y alta corriente, cada uno
consta de siete pares NPN Darlington que cuentan con salidas de alto voltaje con
diodos de ctodo comn para la conmutacin de cargas inductivas. Los pares
Darlington pueden conectarse en paralelo para una mayor capacidad de corriente. Las
aplicaciones incluyen controladores de rel, los controladores de lmparas, los
controladores de pantalla (LED y de descarga de gas), los conductores de lnea y
motores.
Figura 2.1
3.4.1.- DESCRIPCIN
Esta tarjeta est diseada con el objetivo de utilizar el integrado ULN2003 para el
control de un motor paso a paso, recomendamos el motor unipolar de 5 lneas 28BYJ-
48, (*No incluido) para el conector integrado, pero no lo es el nico motor que puedes
utilizar, ya que esta tarjeta cuenta con la opcin de utilizar las 7 salidas del integrado
conectado una regleta.
3.4.3.- CONEXIN
Es necesario tener en cuenta que los terminales de salida de este chip conectan las
cargas a masa cuando llega una seal positiva a las entradas adecuadas. Por este
motivo, el terminal de la carga que no est conectado al chip ha de estar unido al borne
positivo del generador. En el esquema de abajo vemos como se conectara un motor al
canal superior (1, 16). Tambin se puede observar que pueden existir dos
alimentaciones unidas por masa. En este ejemplo, el pulsador es el encargado de dar
la seal de control al pin 1, para que el pin 16 se ponga a 0 voltios y quede conectado
el motor
Figura 2.2
3.4.4.- ESQUEMA INTERNO
Figura 2.3
3.5.1.- DEFINICION
Figura 2.10
3.5.2 TIPOS
Estos motores cuentan con dos bobinas con un punto medio de los cuales salen los
cables hacia el exterior; estos cables se conectan a la fuente mientras que los extremos
de las bobinas son aterrizadas para cerrar el circuito; dependiendo del tipo de motor,
las lneas comunes pueden ser independientes o no.
Esta configuracin puede ser vista de las siguientes formas: que el motor tiene dos
bobinas pequeas conectadas a un punto en comn, o que una bobina est divida en
dos por medio de un punto comn. Ahora, y dependiendo de qu media bobina se
energice, se puede tener un polo norte o un polo sur; si se energiza la otra mitad, se
obtiene un polo opuesto al otro. En la Ilustracin 2.11 se muestra un esquema
representativo del motor a pasos unipolar.
Figura 2.11
Figura 2.12
3.5.2.2.- MOTOR BIPOLAR
Cuentan con dos bobinas sin ningn punto medio donde salga un cable, por lo que se
tienen cuatro cables y cada par corresponde a las terminales de una bobina
Ilustraciones 3 y 4 Dada la configuracin de la bobina, la corriente puede fluir en dos
direcciones, necesitando un control bidireccional o bipolar. En general, con respecto al
sentido de giro de los motores a pasos bipolares, vale la pena recordar que el sentido
de giro depende de la direccin del flujo de la corriente por las bobinas ya que sta
induce en el embobinado un campo magntico que genera un polo magntico norte y
sur, de ah que el rotor se mueva para que uno de los polos del rotor sea opuesto al de
la bobina localizado en el estator, como se muestra en la Ilustracin 3.
Figura 2.13
Figura 2.14
4.- USABILIDAD
Entre los principales usos que le podemos dar al control de motor de paso a paso
tenemos los siguientes:
Taxmetros
Disk-drive
Impresoras
Plotters
Brazo y robots completos
Patrn mecnico de velocidad angular
Registradores XY
Relojes elctricos
Casetes digitales
Control remoto
Mquinas de escribir electrnicas
Manipuladores
Posicionamiento de vlvulas en controles industriales
Posicionamiento de piezas en general
Bombas impelentes en aplicaciones de electromedicina
5.1.- MATERIALES
12.- 01 ULN2003
5.2.- HERRAMIENTAS
MOTOR
INTERFAZ ETAPA
PC PASO
PUERTO DE
PERSONAL A
PARALELO POTENCIA
PASO
En informtica, la unidad de disco duro o unidad de disco rgido (en ingls: Hard
Disk Drive, HDD) es el dispositivo de almacenamiento de datos que emplea un sistema
de grabacin magntica para almacenar archivos digitales. Se compone de uno o
ms platos o discos rgidos, unidos por un mismo eje que gira a gran velocidad dentro
de una caja metlica sellada. Sobre cada plato, y en cada una de sus caras, se sita un
cabezal de lectura/escritura que flota sobre una delgada lmina de aire generada por la
rotacin de los discos. Es memoria no voltil.
Esta memoria de corto plazo solo acta cuando el computador est encendido.
Cuando trabajes en un documento como una hoja de clculo u otro tipo de archivo,
debes guardarlo para evitar que este se borre o pierda. Algunos equipos tienen una
funcin de autoguardado, pero no te confes tanto.
Cuando guardas los datos se graban en el disco duro hasta que t decidas borrarlos.
#include<dos.h>
#include<conio.h>
#include<stdio.h>
main()
{
INICIO: int s,x,e=0;
char a,b,c,d;
int m[4]={8,4,2,1};
outportb(0x378,0);
textbackground(1);
textcolor(7);
clrscr();
gotoxy(38,3);
printf("MENU DE OPCIONES");
window(30,5,60,15);
textbackground(7);
textcolor(1);
clrscr();
gotoxy(3,2);
printf("TECLA H - GIRO HORARIO");
gotoxy(3,4);
printf("TECLA A - GIRO ANTIHORARIO");
gotoxy(3,6);
printf("TECLA P - # DE PASOS");
gotoxy(3,8);
printf("TECLA Q - SALIR DEL PROGRAMA \n");
gotoxy(3,10);
ABC: delay(500);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
a=_AL;
if((a=='H')||(a=='A')||(a=='P')||(a=='Q'))
b=a;
switch(b)
{
case 'H': goto HORA;
case 'A': goto ANTI;
case 'P': goto PASOS;
case 'Q': goto FIN;
}
goto ABC;
HORA: clrscr();
outportb(0x378,0);
textbackground(1);
textcolor(7);
clrscr();
window(30,5,60,20);
textbackground(7);
textcolor(1);
clrscr();
gotoxy(8,4);
printf("GIRO HORARIO");
gotoxy(3,6);
printf("TECLA A - GIRO ANTIHORARIO");
gotoxy(3,8);
printf("TECLA P - # DE PASOS");
gotoxy(3,10);
printf("TECLA T - PARA TERMINAR");
V1: for(x=0;x<4;++x)
{
outportb(0x378,m[x]);
textcolor(1);
gotoxy(14,14);
printf("%2d",m[x]);
delay(200);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='A') goto ANTI;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='2') goto V2;
if(b=='3') goto V3;
}
goto V1;
V2: for(x=0;x<4;++x)
{
outportb(0x378,m[x]);
textcolor(1);
gotoxy(14,14);
printf("%2d",m[x]);
delay(50);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='A') goto ANTI;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='1') goto V1;
if(b=='3') goto V3;
}
goto V2;
V3: for(x=0;x<4;++x)
{
outportb(0x378,m[x]);
textcolor(1);
gotoxy(14,14);
printf("%2d",m[x]);
delay(5);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='A') goto ANTI;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='1') goto V1;
if(b=='2') goto V2;
}
goto V3;
ANTI: clrscr();
outportb(0x378,0);
textbackground(1);
clrscr();
window(30,5,60,20);
textbackground(7);
textcolor(1);
clrscr();
gotoxy(8,4);
printf("GIRO ANTIHORARIO");
gotoxy(3,6);
printf("TECLA H - GIRO HORARIO");
gotoxy(3,8);
printf("TECLA P - # DE PASOS");
gotoxy(3,10);
printf("TECLA T - PARA TERMINAR");
V11: for(x=3;x>=0;--x)
{
outportb(0x378,m[x]);
gotoxy(14,14);
printf("%2d",m[x]);
delay(200);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='H') goto HORA;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='2') goto V12;
if(b=='3') goto V13;
}
goto V11;
V12: for(x=3;x>=0;--x)
{
outportb(0x378,m[x]);
gotoxy(14,14);
printf("%2d",m[x]);
delay(50);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='H') goto HORA;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='1') goto V11;
if(b=='3') goto V13;
}
goto V12;
V13: for(x=3;x>=0;--x)
{
outportb(0x378,m[x]);
gotoxy(14,14);
printf("%2d",m[x]);
delay(5);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='H') goto HORA;
if(b=='P') goto PASOS;
if(b=='T') goto INICIO;
if(b=='1') goto V11;
if(b=='2') goto V12;
}
goto V13;
PASOS: clrscr();
gotoxy(3,4);
printf("INGRESE EL NUMERO DE PASOS:\n");
gotoxy(14,8);
scanf("%d",&c);
delay(500);
outportb(0x378,0);
textbackground(1);
clrscr();
window(30,5,60,22);
textbackground(7);
textcolor(1);
clrscr();
gotoxy(5,4);
printf("MOVIMIENTO POR # PASOS");
gotoxy(3,6);
printf("TECLA H - GIRO HORARIO");
gotoxy(3,8);
printf("TECLA A - GIRO ANTIHORARIO");
gotoxy(3,10);
printf("TECLA T - PARA TERMINAR");
e=0;
OTRO: for(x=0;x<4;++x)
{
outportb(0x378,m[x]);
delay(500);
gotoxy(11,14);
printf("PASO N %d",e+1);
if(e==c) goto INICIO;
++e;
gotoxy(14,16);
printf("%2d",m[x]);
_AH=0x06;
_DL=0xff;
geninterrupt(0x21);
b=_AL;
if(b=='H') goto HORA;
if(b=='A') goto ANTI;
if(b=='T') goto INICIO;
}
goto OTRO;