Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Pgina
Control de motores
Signal Name
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
-
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
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
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"
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
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).
Alcn C. La Pamela
Pgina
Control de motores
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
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
Control de motores
outp(890,11);
}
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
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
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
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
Pgina
10
Control de motores
Alcn C. La Pamela
Pgina
11