Sei sulla pagina 1di 11

Control de motores

motor paso a paso

Control de motores
Mediante el puerto Paralelo
i.

Objetivo

El objetivo del laboratorio a realizar es el de manejar el puerto paralelo correctamente con programas
realizados por nosotros mismos.
ii.

Marco teorico

Qu es un puerto?

Puerto: Es un conjunto de lneas (interfaz) que puede utilizar el CPU para intercambiar
informacin con otros dispositivos
Puerto Paralelo: Transmite ms de un bit a la vez, e.g. 8-bits
Puerto Serie: Transmite un bit a la vez, e.g. RS-232

Diagrama del conector del puerto paralelo


PUERTO PARALELO:

Pto. Paralelo: Originalmente, el puerto paralelo de la PC, fu pensado para conectar


impresoras, pero puede ser usado para manejar dispositivos en general
Las 12 salidas TTL (0-5v) usan latches internos y pueden programarse va instrucciones
IN/OUT del CPU
Las 5 entradas son "steady-state input points" y pueden programarse va instrucciones IN del
CPU
Las 3 direcciones del puerto (DATA, STATUS, CONTROL) inician comnmente en la 378H
(otras direcciones comunes son la 278H y 3BCH)
Una de las lneas de entrada es adems una interrupcin (que puede habilitarse va programa)
y ademas hay una lnea tipo "power-on reset"

IBM-PC Parallel Printer Port DB-25 Socket Pin layout


Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

Signal Name

Register Bit DB-25 Pin I/O Direction

Strobe
Data Bit 0
Data Bit 1
Data Bit 2
Data Bit 3
Data Bit 4
Data Bit 5
Data Bit 6
Data Bit 7
Acknowledge
Busy
Paper End
Select In
Auto Feed
Error
Initialize
Select
Ground

C0
D0
D1
D2
D3
D4
D5
D6
D7
S6
S7
S5
S4
C1
S3
C2
C3
-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18-25

Salida
Output
Output
Output
Output
Output
Output
Output
Output
Entrada
Input
Input
Input
Output
Input
Output
Output
-

Breve descripcin del puerto paralelo (EN EL PC):


El puerto paralelo de un PC posee un conector de salida del tipo DB25 hembra cuyo diagrama y
seales utilizadas podemos ver en la siguiente figura:

Si deseamos escribir un dato en el bus de salida de datos (pin 2 a 9) solo debemos escribir el byte
correspondiente en la direccin hexadecimal 0X378 (888 en decimal) cuando trabajamos con el LPT1
Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

y 0x278 (632 en decimal) cuando trabajamos 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 debern escribir los ocho bits nuevamente.
Para leer el estado de los pins de entrada (10, 12, 13 y 15) se debe realizar una lectura a la direccin
hexadecimal 0x379 (889 en decimal) si trabajamos con el LPT1 o bien leer la direccin 0x279 (633 en
decimal) si trabajamos con el LPT2. La lectura ser devuelta en un byte en donde el 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.
El puerto paralelo trabaja a 5V y, como mximo, a 20mA, por lo que no podemos conectar el motor
directamente directamente. Para ello utilizaremos un circuito interfase entre el motor y el puerto que
ser el encargado de aumentar la potencia de nuestro puerto paralelo.
ULN2003
Est basado en el integrado ULN2003, un driver Darlington de 7-bit, 500mA, entrada TTL npn, y su
conexin es tan sencilla como indica el siguiente esquema:

El diodo Zener se utiliza como medida de proteccin contra las inducciones que se producen en los
bobinados, evitando as las fuertes corrientes inversas generadas.
BUFFER 74LS245
El bus de datos es comn a las entradas y salidas, las entradas estn aisladas de dicho bus por medio
del integrado 74LS245 que integra un tranceiver bidireccional Octal con salida en 3 estados.

Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

Como se ve en la figura, el pin DIR del chip define el sentido de transferencia de datos Dir= "0" el
sentido es de B a A. El pin G (Enable) controla el estado de las salidas del bus. Si G= "1" las salidas
pasan a estado de alta impedancia con lo cual no interfieren con el puerto B del PIC aunque se
encuentre configurado como salidas. Si G="0" el estado de las entradas optoacopladas es transferido
al puerto B del PIC, bajo el control del S.O. el pin G es activado por RA0, por tanto la primera accin
es configurar el puerto B del PIC como entradas, poner a nivel lgico "0" bajo RA0, leer el bus y pasar
RA4 a nivel Alto "1"

MOTOR PASO A PASO


Un motor paso a paso, como todo motor, es en esencia un conversor electromecnico, que transforma
energa elctrica en mecnica.

Mientras que un motor convencional gira libremente al aplicarle una tensin,el motor paso a paso
gira un determinado ngulo de forma incremental(transforma impulsos elctricos en movimientos de
giro controlados), lo quele permite realizar desplazamientos angulares fijos muy precisos (pueden
variar desde 1,80 hasta unos 90).
Estn constituidos esencialmente por dos partes:
Estator: parte fija construida a base de cavidades en las que van depositadas las bobinas.
Rotor: parte mvil construida mediante un imn permanente.
Este conjunto va montado sobre un eje soportado por dos cojinetes que le permiten girar libremente.
PRINCIPIO DE FUNCIONAMIENTO
Los motores elctricos, en general, basan su funcionamiento en las fuerzas ejercidas por un campo
electromagntico y creadas al hacer circular una corriente elctrica a travs de una o varias bobinas. Si
dicha bobina, generalmente circular y denominada estator, se mantiene en una posicin mecnica fija
y en su interior, bajo la influencia del campo electromagntico, se coloca otra bobina, llamada rotor,
recorrida por una corriente y capaz de girar sobre su eje.
Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

Al nmero de grados que gira el rotor, cuando se efecta un cambio de polaridad en las bobinas del
estator, se le denomina "ngulo de paso".
Los motores paso a paso, se controlan por el cambio de direccin del flujo de corriente a travs de las
bobinas que lo forman:

controlar el desplazamiento del rotor en funcin de las tensiones que se aplican a las bobinas,
con lo que podemos conseguir desplazamientos alante y atrs.
controlar el nmero de pasos por vuelta.
controlar la velocidad del motor.
Segn la construccin de las bobinas del estator, dos tipos de MPAP:
UNIPOLARES: Se llaman as porque la corriente que circula por los diferentes bobinados siempre
circula en el mismo sentido. Tienen las bobinas con un arrollamiento nico.

BIPOLARES: la corriente que circula por los bobinados cambia de sentido en funcin de la tensin
que se aplica por lo que un mismo bobinado puede tener en uno de sus extremos distinta polaridad
(bipolar).

Tienen las bobinas compuestas por dos arrollamientos cada una.


Algunos motores tienen los bobinados de tal manera que en funcin de puentes pueden convertirse en
unipolares o bipolares.

Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

Lo ms importante de un motor es saber el tipo de motor que es, la potencia, el nmero de pasos, el
par de fuerza, la tensin de alimentacin y poco ms si son motores sencillos.
Cmo saber cmo conectar uno de estos motores?
Estos motores exteriormente poseen 6 o 5 cables (cuatro corresponden a cada uno de los extremos de
las dos bobinas existentes, mientras que los otros dos corresponden al punto medio de cada una. En el
caso de que el cable restante sea uno, entonces corresponde a estos dos ltimos unidos internamente).
Una vez localizados dichos cables mediremos la resistencia con un hmetro o un multmetro en ellos.
De esta forma localizamos las dos bobinas (los tres cables cuya resistencia entre s sea distinta de
infinito corresponden a una bobina).
Podemos decir que tenemos dos grupos de tres cables (A, B y C).
Mediremos ahora la resistencia entre A y B, B y C y entre A y C. El paranterior cuya lectura sea ms
alta corresponde a los extremos de la bobina, mientras que el restante es el punto medio de la misma.
Cul es su secuencia?
Para saber la secuencia del motor necesitaremos una fuente de tensin contnua del valor
caracterstico del motor (5 Voltios generalmente). Conectamos un polo de la misma a los dos cables
correspondientes al punto medio de cada bobina. Al polo restante lo conectamos a uno de los cuatro
cables y observamos hacia que lado se produce el paso. Procedemos igual con los otros, probando en
distinto orden, hasta que los cuatro pasos se hayan producido en la misma direccin. De esta forma ya
habremos hallado la secuencia del motor.
EL OPTOACOPLADOR
El Optoacoplador es un dispositivo que se compone de un diodo LED y un fototransistor, de manera
de que cuando el diodo LED emita luz, sta ilumine el fototransistor y conduzca. Estos dos elementos
estn acoplados de la forma ms eficiente posible.
La corriente de salida IC (corriente de colector del fototransistor) es proporcional a la corriente de
entrada IF (corriente en el diodo LED). La relacin entre estas dos corrientes se llama "razn de
transferencia de corriente" (CTR) y depende de la temperatura ambiente.
A mayor temperatura ambiente, la corriente de colector en el fototransistor es mayor para la misma
corriente IF (la corriente por el diodo LED)

Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

La entrada (circuito del diodo) y la salida (circuito del fototransistor) estn 100% aislados y la
impedancia de entrada es muy grande (1013 ohms tpico)
El optoacoplador es un dispositivo sensible a la frecuencia y el CTR disminuye al aumentar sta.
Puerto paralelo
Enviando datos por el puerto de control...
Este puerto es de lectura-escritura. En este caso lo utilizaremos para enviar seales desde la PC hacia
el exterior, y el circuito que se utilizara ser similar al empleado en el puerto de datos, de ese modo es
posible tener 12 salidas, lo que si se debe tener en cuenta es que el primero el segundo y el cuarto bit
de este registro estn invertidos, pero esta dificultad es superada con la codificacin del programa que
controla este puerto
Si deseas ver como funcionan las salidas, arma el circuito anterior y ya podrs observar las variaciones
en los led's.
El programa de prueba lo tienes aqu.
/*Programa que enva seales al puerto de control
ingresando un nmero decimal*/
#include<dos.h>
#include<stdio.h>
#include<conio.h>
int a;
/*variable, valor que enviare al
puerto*/
void main()
{
a=11;
/*11 en binario es 1011 los valores 1
corresponden*/
/*a los pines invertidos*/
outp(890,a);
/*apago todos los LED's*/
clrscr();
/*limpio la pantalla*/
printf("Ingrese el nmero en decimal para enviar al
puerto.\n");
printf("El nmero mximo permitido es 15:\n");
scanf("%d",&a); /*tomo el valor y se lo paso a "a"*/
outp(890,a);
/*lo envo al puerto de estado*/
printf("tachannnn... Dato enviado...!!!\n\n");
printf("Se acab, presione una tecla para salir");
getch();
Alcn C. La Pamela

/*...y hasta luego*/


Pgina

Control de motores

motor paso a paso

outp(890,11);
}

/*apago todos los LED's*/

Tendr que hacer algunas aclaraciones...?, no creo verdad...? bueno, slo ten en cuenta los bits
invertidos cuando pruebes este programa, que por cierto aqu lo tienes ya compilado se llama
Pcontrol.exe.
Y como no poda faltar, para los amantes de Visual Basic tambin les dejo el cdigo, el exe y sus
comentarios.
Algo que olvidaba es la distribucin de los pines de control, para que sueldes en el conector DB25, y
son los siguientes.
C0 --> pin 1
C1 --> pin 14
C2 --> pin 16
C3 --> pin 17
Masa --> pin 18 al 25

Recibiendo datos por el puerto paralelo...


Ahora si ya estamos en condiciones de continuar...
Para recibir datos en nuestro ordenador por el puerto paralelo utilizaremos su registro de estado,
recuerda que solo dispones de 5 bits (7, 6, 5, 4 y 3) y que el bit 7 funciona en modo invertido
El circuito que construiremos ser uno de los mas sencillos, solo habr que tener en cuenta que un bit
puede tener dos estados posibles, ya sea 0 (0 voltios) o 1 (5 voltios) no podemos dejarlo librado al
azar, razn por la cual, si no se enva seal alguna, ste deber estar unido a masa, de acuerdo...?
El esquema elctrico es el siguiente;

Observa que para el bit 7 la conexin es invertida si lo pones a 0 el programa lo leer como un 1, si no
presionas el pulsador se leer como 0 lgico.
Alcn C. La Pamela

Pgina

Control de motores

motor paso a paso

Con respecto al programa, para no liar en lenguajes de programacin hice uno que nos verifica el
estado del puerto, puedes bajarlo si lo deseas, eso s...!!! "no es eeeeel programa", pero que va, sirve
para estudiarlo, jejejejeje

CIRCUITO DEL LABORATORIO

Programa de control del motor paso a paso


Dim cont, doble As Integer
Dim c As Integer
Dim mover As String
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
Timer4.Enabled = False
mover = "izq"
c=1
Timer4.Enabled = True
End Sub
Private Sub Command3_Click()
Timer4.Enabled = False
mover = "der"
Alcn C. La Pamela

Private Sub Timer4_Timer()


Out &H378, c
Dim i As Integer
For i = 0 To 7
Shape3(i).BackStyle = (c And 2 ^ i) / 2 ^ i
Next
If mover = "izq" Then
If c < 7 Then
c=c*2
Else
c=1
End If
Else
Label7.Caption = cont
End If
End Sub
Pgina

Control de motores

c=8
Timer4.Enabled = True
End Sub
Private Sub Command4_Click()
Timer4.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub HScroll1_Change()
Timer2.Interval = HScroll1.Value
Timer3.Interval = HScroll1.Value
End Sub
Private Sub Check1_Click()
If Check1.Value = 1 Then
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Else
Timer1.Enabled = True
End If
End Sub
Private Sub Timer1_Timer()
Dim datoe As Integer
datoe = Val(Text1.Text)
If datoe = 127 Then
Timer2.Enabled = True
Timer3.Enabled = False
doble = 0
Label7.Caption = doble
If mover = "izq" Then
Timer4.Enabled = True
Else
Timer4.Enabled = False
End If
If mover = "der" Then
Timer4.Enabled = True
Else
Timer4.Enabled = False
End If
Else
Timer3.Enabled = True
Timer2.Enabled = False
cont = 0

Alcn C. La Pamela

motor paso a paso

Private Sub Timer2_Timer()


Dim a As Integer
a = 2 ^ cont
Out &H378, (a Xor &HB)
Label3.Caption = a
For l = 0 To 3
Shape3(l).BackStyle = ((a And 2 ^ l) / 2 ^ l)
Next l
cont = cont + 1
If cont = 4 Then
cont = 0
End If
End Sub
f mover = "der" Then
If c > 1 Then
c=c/2
Else
c=8
End If
End If
End If
End Sub
Private Sub Timer3_Timer()
Dim b As Integer
b = 3 * (2 ^ doble)
For l = 0 To 3
Shape2(l).BackStyle = ((b And 2 ^ l) / 2 ^ l)
Next l
Out &H378, (b Xor &HB)
Label4.Caption = b
doble = doble + 1
If b = 24 Then
b=9
For l = 0 To 3
Shape2(l).BackStyle = ((b And 2 ^ l) / 2 ^ l)
Next l
Label4.Caption = b
Out &H378, (b Xor &HB)
doble = 0
End If
End Sub

Pgina

10

Control de motores

Alcn C. La Pamela

motor paso a paso

Pgina

11

Potrebbero piacerti anche