control de motores paso

Upload: omar-milton-condori-pena

Post on 04-Mar-2016

5 views

Category:

Documents


0 download

DESCRIPTION

Control de Motores Paso

TRANSCRIPT

Control de motores motor paso a paso

Control de motores motor paso a paso

Control de motoresMediante 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-stateinputpoints" 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-onreset"

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

Signal NameRegister BitDB-25 PinI/O Direction

StrobeC01Salida

Data Bit 0D02Output

Data Bit 1D13Output

Data Bit 2D24Output

Data Bit 3D35Output

Data Bit 4D46Output

Data Bit 5D57Output

Data Bit 6D68Output

Data Bit 7D79Output

AcknowledgeS610Entrada

BusyS711Input

Paper EndS512Input

Select InS413Input

Auto FeedC114Output

ErrorS315Input

InitializeC216Output

SelectC317Output

Ground-18-25-

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 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.

PRIVATE "TYPE=PICT;ALT="

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.

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.

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)

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

#include

#include

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();

/*...y hasta luego*/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 1C1 --> pin 14C2 --> pin 16C3 --> pin 17Masa --> 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.

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"

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 = 0Private 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

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

Alcn C. La PamelaPgina 11