You are on page 1of 10

TEMA: CONTROL DE VELOCIDAD Y GIRO PARA UN MOTOR DE PASO O SERVOMOTOR.

OBJETIVO GENERAL DISEAR E IMPLEMENTAR UN CONTROL DE VELOCIDAD Y GIRO PARA UN MOTOR DE PASO O SERVOMOTOR. OBJETIVOS ESPECIFICOS Conocer la forma de operacin un motor paso a paso. Investigar el datasheet del lcd de 16 pines. Conocer la funcin de un amplificador. Disear el circuito en ISIS. Armar el circuito en protoboard.

MATERIALES Lcd. Pic 18f4550. Leds. Resistencias 330 ohmios. Motor paso a paso.

MARCO TEORICO En varios sistemas electrnicos nos encontramos con una parte mecnica que transmite algn movimiento por palancas, levas, poleas, ejes de rotacin, entre otras, todas ellas obtienen, en primera instancia, el movimiento de algn motor. Existen diferentes tipos de motores, sin embargo para sistemas como: DVDs, Grabadoras, Quemadores de discos, Impresoras, etc; se necesita un mejor control de las vueltas que realiza el motor, de esta manera los motores a pasos resultan ser los ms convenientes. De igual manera disponemos de motores a pasos unipolares o bipolares, cada uno de ellos tiene una combinacin a sus entradas que determina su posicin. Para controlar la secuencia de estas combinaciones podemos utilizar un PIC. En el siguiente grfico (Figura 1) se muestran los puertos disponibles en el PIC18F4550, sus ubicaciones y las posibles funciones de cada pin.

La mayora de los dispositivos de lgica secuencial, entre ellos los CPU, son de naturaleza sncrona. Es decir, estn diseados y operan en funcin de una seal de sincronizacin. Esta seal, conocida como seal de reloj, usualmente toma la forma de una onda cuadrada peridica. Calculando el tiempo mximo en que las seales elctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU, los diseadores pueden seleccionar un perodo apropiado para la seal de reloj. Para el correcto funcionamiento del microcontrolador debemos definir la frecuencia del oscilador pues determinar los ciclos de instruccin; podemos utilizar un oscilador interno o externo, sin embargo es recomendable utilizar un oscilador de cristal externo para evitar un mal funcionamiento frente a las variaciones de temparatura dentro del microcontrolador. Motor a Pasos Bipolar Un motor a pasos es capaz de moverse ciertos grados cada vez que se le aplique un pulso y se mueva un paso, este paso puede variar desde 90 hasta 1.8. Estos motores poseen la ventaja de poder quedar enclavados en una sla posicin o bien totalmente libres; si una o ms de sus bobinas esta energizada el motor permanecer en la posicin correspondiente, o bien, si no hay flujo de corriente en las bobinas el eje del motor estar libre. Estos motores estn constituidos normalmente por un rotor sobre el que van aplicados distintos imanes permanentes y por un cierto nmero de bobinas excitadoras en su estator. Existen 2 tipos de motores a pasos: Unipolares

Bipolares Ambos soncontrolados mediante una secuencia de activacin especfica, pero se diferencian en el modo en que estn conectadas sus bobinas. Debido a que se usar un motor a pasos bipolar se caracterizar a continuacin. Motor Bipolar En este tipo de motores las bobinas del estator se conectar en serie formando solamente dos grupos, que se montan sobre dos estatores. De acuerdo a la (Figura 5) se observa que de este motor salen cuatro hilos que se conectan al circuito de control que realiza la funcin de cuatro interruptores electrnicos dobles, que nos permiten variar la polaridad de alimentacn de las bobinas.

Motor Unipolar Estos motores suelen tener 6 o 7 cables de salida, dependiendo de sus conexiones internas. Este tipo se caracteriza por ser ms simple de controlar. En la (Figura 7) podemos apreciar un ejemplo de conexionado para controlar un motor a pasos unipolar mediante el uso de un ULN2803, el cual es un array de 8 transistores tipo darlington capaz de manejar cargas de hasta 500mA. Las entradas de activacin (A, B, C y D) pueden ser activadas por un microcontrolador.

LCD

PROCEDIMIENTO Para este proyecto investigamos los datasheets de los componentes de nuestro control de velocidad del motor paso a paso. Luego con ayuda de nuestro simulador, ISIS realizamos un diseo del circuito de control a nuestro gusto.

Una vez realizado el diseo del circuito, empezamos a programar el pic. Con ayuda de nuestro programa PIC C COMPILER, una vez echo el programa de control del pic 18f4550 quemamos el programa. Con ayuda de PICKIT2. #INCLUDE <18F4550.h> #include <stdlib.h> #include <string.h> #fuses HS, NOWDT, NOLVP, PUT, PROTECT, BROWNOUT #use delay(clock=12000000) #use fast_io(a) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #bit RBIF=0x0B.0

void menu_inicio(); void delay(); struct { char dato char movdi

: 1; : 1;

char si

: 1;

} BANDERAS; enum { menu_incvel, menu_decvel, menu_derizq, menu_stpini } MODO;

unsigned long vel,i; #INT_TIMER1 void interrup_t1() { set_timer1(-62500); } void main() { set_tris_a(0b00000000); set_tris_b(0b11110000); set_tris_d(0b00000000); set_tris_c(0b00000000); set_tris_e(0b00000000); enable_interrupts(INT_TIMER1); enable_interrupts(INT_RB); enable_interrupts(GLOBAL); setup_timer_1(T1_INTERNAL | T1_DIV_BY_8); set_timer1(-62500); port_b_pullups(TRUE); output_a(0x00); output_b(0x00); output_c(0x00); output_d(0xff); output_e(0x00); BANDERAS.dato=0;

BANDERAS.movdi=0; BANDERAS.si=0; vel=2; i=1; delay_ms(100); while (TRUE) { if(BANDERAS.si) { if(BANDERAS.movdi) { output_a(0b00001010); delay_ms(vel); output_a(0b00001001); delay_ms(vel); output_a(0b00000101); delay_ms(vel); output_a(0b00000110); delay_ms(vel); } else { output_a(0b00000110); delay_ms(vel); output_a(0b00000101); delay_ms(vel); output_a(0b00001001); delay_ms(vel); output_a(0b00001010); delay_ms(vel); } } if(BANDERAS.dato) { BANDERAS.dato=0; switch (MODO) { case menu_incvel: { if(vel>=255) { vel=128; i=127; }

vel=vel*2; output_d(~i); i=(i*2)+1; break; } case menu_decvel: { vel=vel/2; if(vel<=1) { vel=2; i=2; } i=(i/2); output_d(i); break; } case menu_derizq: { if(!BANDERAS.movdi) BANDERAS.movdi=1; else BANDERAS.movdi=0; break; } case menu_stpini: { if(!BANDERAS.si) BANDERAS.si=1; else BANDERAS.si=0; output_a(0); break; } } } } } #INT_RB void Interrup_RB() { RBIF=0; delay();

if(!input(PIN_B4)) { MODO=menu_incvel; BANDERAS.dato=1; return; } if(!input(PIN_B5)) { MODO=menu_decvel; BANDERAS.dato=1; return; } if(!input(PIN_B6)) { MODO=menu_derizq; BANDERAS.dato=1; return; } if(!input(PIN_B7)) { MODO=menu_stpini; BANDERAS.dato=1; return; } } void delay() { unsigned long p; for(p=0;p<=1000;p++); } Echo el diseo del circuito y realizada la programacin, armamos en el protoboard, una vez armado realizamos las respectivas pruebas. Asi finalizando el proyecto final.

CONCLUSIONES La diferencie entre los lcd de 14 pines y 16 pines es que los 2 terminales extra es para el led de iluminacin interna. El motor paso a paso recibe seales de pulso que en forma secuencial ABC producen el movimiento del motor. Si no se conoce los terminales del motor paso a paso, podemos daar el circuito interno del motor.

Si sobrepasamos el voltaje nominal del pic 18f4550, podemos quemarlo. RECOENDACIONES Investigar los datasheet, de los componentes a utilizar. Conocer la forma de operacin del motor paso a paso. Realizar las simulaciones del circuito en el ISIS antes de conectar en el protoboard.

BIBLIOGRAFIA: http://need4bits.wordpress.com/2012/08/15/asmp03control-de-un-motor-a-pasos-bipolarpic18f4550-asm/ http://www.youtube.com/watch?v=6Af8NT4YiDY http://www.monografias.com/trabajos17/motor-paso-a-paso/motor-paso-a-paso.shtml

You might also like