Los motores eléctricos, en general, basan su funcionamiento en las fuerzas ejercidas por un campo electromagnético y creadas al hacer circular una corriente eléctrica a través de una o varias bobinas. Si dicha bobina, generalmente circular y denominada estator, se mantiene en una posición mecánica fija y en su interior, bajo la influencia del campo electromagnético, se coloca otra bobina, llamada rotor, recorrida por una corriente y capaz de girar sobre su eje, esta última tenderá a buscas la posición de equilibrio magnético, es decir, orientará sus polos NORTE-SUR hacia los polos SUR-NORTE del estator, respectivamente. Cuando el rotor alcanza esta posición de equilibrio, el estator cambia la orientación de sus polos, aquel tratará de buscar la nueva posición de equilibrio; manteniendo dicha situación de manera continuada, se conseguirá un movimiento giratorio y continuo del rotor y a la vez la transformación de una energía eléctrica en otra mecánica en forma de movimiento circular.
TIPOS DE MOTORES PASO A PASO
Hay dos tipos básicos de motores Paso a Paso, los BIPOLARES que se componen de dos bobinas y los UNIPOLARES que tienen cuatro bobinas. Externamente se diferencian entre sí por el número de cables. Los bipolares solo tienen cuatro conexiones dos para cada bobina y los unipolares que normalmente presentan seis cables, dos para cada bobina y otro para alimentación de cada par de éstas, aunque en algunos casos podemos encontrar motores unipolares con cinco cables, básicamente es lo mismo, solo que el cable de alimentación es común para los dos pares de bobinas.
Motores Unipolares: En este tipo de motores, todas las bobinas del estator están conectadas en serie formando cuatro grupos. Esta a su vez, se conectan dos a dos, también en serie, y se montan sobre dos estatores diferentes, tal y como se aprecia en la Figura 3. Según puede apreciarse en dicha figura, del motor paso a paso salen dos grupos de tres cables, uno de los cuales es común a dos bobinados. Los seis terminales que parten del motor, deben ser conectados al circuito de control, el cual, se comporta como cuatro conmutadores electrónicos que, al ser activados o desactivados, producen la alimentación de los cuatro grupos de bobinas con que está formado el estator. Si generamos una secuencia adecuada de funcionamiento de estos interruptores, se pueden producir saltos de un paso en el número y sentido que se desee.
Figura 3.- Control de motor Unipolar
Motores Bipolares: En este tipo de motores las bobinas del estator se conectan en serie formando solamente dos grupos, que se montan sobre dos estatores, tal y como se muestra en la Figura 4.
Según se observa en el esquema de este motor salen cuatro hilos que se conectan, al circuito de control, que realiza la función de cuatro interruptores electrónicos dobles, que nos permiten variar la polaridad de la alimentación de las bobinas. Con la activación y desactivación adecuada de dichos interruptores dobles, podemos obtener las secuencias adecuadas para que el motor pueda girar en un sentido o en otro.
PROGRAMA UTILIZADO.
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <dos.h>
int tecla1;
int tecla2;
int i=0;
float tiempoespera =.20;
void espera(float segundos){
clock_t endwait;
endwait = clock () + segundos * CLK_TCK ;
while (clock() < endwait){}
}
int main()
{
do
{
clrscr();
cout<<"Motor de Pasos\n";
cout<<"\n 2 Girar derecha\n";
cout<<"\n 4 Girar izquierda\n";
cout<<"\n 6 Aumentar velocidad\n";
cout<<"\n 8 Disminuir velocidad\n";
cout<<"\n 0 Salir\n";
cout<<"\n OPCION: \n";
tecla1 = getch();
if(tecla1 == 56){
cout<<"\nVelocidad disminuida";
delay(1000);
tiempoespera = 0.30;
}
else if(tecla1 == 50){
cout<<"\nGirando a la derecha";
i=0;
do{
asm {
mov dx,378h
mov al,4
out dx,al
}
espera(tiempoespera);
asm {
mov dx,378h
mov al,0
out dx,al
}
espera(tiempoespera);
asm {
mov dx,378h
mov al,8
out dx,al
}
espera(tiempoespera);
asm {
mov dx,378h
mov al,0
out dx,al
}
espera(tiempoespera);
i=i+1;
}while(i<25);
}
else if(tecla1 == 52 ){
cout<<"\nMotor izquierda";
i=0;
do{
asm {
mov dx, 0378h
mov al,01
out dx,al
}
espera(tiempoespera);
asm {
mov dx, 0378h
mov al,00
out dx,al
}
espera(tiempoespera);
asm {
mov dx, 0378h
mov al,02
out dx,al
}
espera(tiempoespera);
asm {
mov dx, 0378h
mov al,00
out dx,al
}
espera(tiempoespera);
i++;
}while(i<25);
}
else if(tecla1 == 54 ){
cout<<"\nVelocidad Aumentada";
delay(1000);
tiempoespera = 0.10;
}
else if(tecla1 == 48 ){
cout<<"\nSalir";
delay(1000);
return(0);
}
else{
cout<<"\nOpcion incorrecta\n";
getch();}
}while(tecla1!=0);
return(0);
}
No hay comentarios:
Publicar un comentario