motor paso a paso

15
Instituto Tecnológico de Querétaro GRUPO Y SALÓN: Grupo 0V, Salón G24 MATERIA: Microcontroladores: Mecatrónica 2 Número de Equipo: Equipo 4 CONTENIDO: Practica: motor a pasos INTEGRANTES: Martín Enrique Valdivia Mejía José Francisco Álvarez Melgar Héctor Cruz Noguez

Transcript of motor paso a paso

Page 1: motor paso a paso

Instituto Tecnológico de Querétaro

GRUPO Y SALÓN:

Grupo 0V, Salón G24

MATERIA:

Microcontroladores: Mecatrónica 2

Número de Equipo:

Equipo 4

CONTENIDO:

Practica: motor a pasos

INTEGRANTES:

Martín Enrique Valdivia Mejía

José Francisco Álvarez Melgar

Héctor Cruz Noguez

Page 2: motor paso a paso

Introducción

Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos, por ejemplo, posicionamiento de piezas, impresoras, escanner, etc.

La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada  pulso  que   se   le  aplique   (puede  usarse  un  controlador  digital  ó  un   tren  de  pulsos  para controlarlo). Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°.

Otro dato importante es que la velocidad es proporcional a la frecuencia de los pulsos y la posición es proporcional a la secuencia de los pulsos.

En los motores a pasos se sacrifica la velocidad, por un mejor control de posición

Marco Teórico

El principio con el que funcionan estos motores es en base a la energización, energización inversa ó desenergización de sus bobinas, para producir un cierto movimiento del eje.  

Este tipo de motores están divididos en motores de imán permanente y de reluctancia variable, para la aplicación a realizar se ocupa el motor de imán permanente por lo que hablaremos más de éste.

El motor de imán permanente a su vez se divide en motores unipolares y bipolares (en éste caso analizaremos los bipolares puesto que es el que se usará en la práctica):

Bipolares: Estos tiene generalmente cuatro cables de salida (ver figura 1). Necesitan ciertos trucos para ser controlados, debido a que requieren del cambio de dirección del flujo de corriente a través de las bobinas en la secuencia apropiada para realizar un movimiento. En figura 3 podemos apreciar un ejemplo de control de estos motores mediante el uso de un puente en H. Como se aprecia, será necesario un puente H por cada bobina del motor, es decir que para controlar un motor Paso a Paso de 4 cables (dos bobinas), necesitaremos usar dos puentes H iguales al de la figura 3. El circuito de la figura 3 es a modo ilustrativo y no corresponde con exactitud a un Puente 

Page 3: motor paso a paso

H. En general es recomendable el uso de puentes H integrados como son los casos del L293 (ver figura 3 bises).

Unipolar: Estos  motores   suelen   tener   6   o   5 cables   de   salida,   dependiendo   de   su conexionado interno (ver figura 2). Este tipo se caracteriza por ser más simple de controlar.

Secuencias para manejar motores paso a paso Bipolares

Como se dijo anteriormente, estos motores necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida.

A continuación se puede ver la tabla con la secuencia necesaria para controlar motores paso a paso del tipo Bipolares:

PASO TERMINALESA B C D

1 +V -V +V -V2 +V -V -V +V3 -V +V -V +V4 -V +V +V -V

Fabricantes: B&R, TECO, OMEGA, NEMA, shinano Kenshi, MITSUMI. 

Protocolo RS232

La comunicación serial es un protocolo muy común  para comunicación entre dispositivos que se incluye   de   manera   estándar   en   prácticamente   cualquier   computadora.   La   mayoría   de   las computadoras   incluyen   dos   puertos   seriales   RS-232.   La   comunicación   serial   es   también   un protocolo común utilizado por varios dispositivos para instrumentación; existen varios dispositivos compatibles con GPIB que incluyen un puerto RS-232. Además, la comunicación serial puede ser utilizada para adquisición de datos si se usa en conjunto con un dispositivo remoto de muestreo.

El concepto de comunicación serial es sencillo. El puerto serial envía y recibe bytes de información un bit a la vez. Aun y cuando esto es más lento que la comunicación en paralelo, que permite la transmisión de un byte completo por vez, este método de comunicación es más sencillo y puede alcanzar mayores distancias. 

Page 4: motor paso a paso

Típicamente, la comunicación serial se utiliza para transmitir datos en formato ASCII. Para realizar la comunicación se utilizan 3 líneas de transmisión: (1) Tierra (o referencia),  (2) Transmitir, (3) Recibir. Debido a que la transmisión es asincrónica, es posible enviar datos por un línea mientras se reciben datos por otra. Existen otras líneas disponibles para realizarhandshaking, o intercambio de pulsos de sincronización, pero no son requeridas. Las características más importantes de la comunicación serial son la velocidad de transmisión,  los bits de datos,  los bits de parada, y  la paridad. Para que dos puertos se puedan comunicar,  es necesario que las características sean iguales.

Velocidad de transmisión (baud rate): Indica el número de bits por segundo que se transfieren, y se mide en baudios (bauds). Por ejemplo, 300 baudios representa 300 bits por segundo. Cuando se hace referencia a los ciclos de reloj se está hablando de la velocidad de transmisión. Por ejemplo, si el protocolo hace una llamada a 4800 ciclos de reloj, entonces el reloj está corriendo a 4800 Hz, lo que significa que el puerto serial  está muestreando las  líneas de transmisión a 4800 Hz. Es posible   tener   velocidades  más   altas,   pero   se   reduciría   la   distancia  máxima  posible   entre   los dispositivos. Las altas velocidades se utilizan cuando los dispositivos se encuentran uno junto al otro, como es el caso de dispositivos GPIB.

Bits de datos: Se refiere a la cantidad de bits en la transmisión. Cuando la computadora envía un paquete   de   información,   el   tamaño   de   ese   paquete   no   necesariamente   será   de   8   bits.   Las cantidades más comunes de bits por paquete son 5, 7 y 8 bits. El número de bits que se envía depende en el tipo de información que se transfiere. 

Bits de parada: Usado para  indicar  el  fin de  la  comunicación de un solo paquete.  Los valores típicos son 1, 1.5 o 2 bits. Debido a la manera como se transfiere la información a través de las líneas  de   comunicación   y   que   cada  dispositivo  tiene   su  propio   reloj,   es   posible   que   los   dos dispositivos no estén sincronizados. Por lo tanto, los bits de parada no sólo indican el fin de la transmisión sino además dan un margen de tolerancia para esa diferencia de los relojes. Mientras más bits de parada se usen, mayor será la tolerancia a la sincronía de los relojes, sin embargo la transmisión será más lenta.

Paridad: Es una forma sencilla de verificar si hay errores en la transmisión serial. Existen cuatro tipos de paridad: par, impar, marcada y espaciada. La opción de no usar paridad alguna también está disponible. Para paridad par e impar, el puerto serial fijará el bit de paridad (el último bit después de los bits de datos) a un valor para asegurarse que la transmisión tenga un número par o impar de bits en estado alto lógico. Esto permite al dispositivo receptor conocer de antemano el estado de un bit,   lo  que serviría  para determinar si  hay ruido que esté afectando de manera negativa la transmisión de los datos, o si los relojes de los dispositivos no están sincronizados.

Es utilizado para una gran variedad de propósitos, como conectar un ratón, impresora o modem, así como instrumentación industrial. Gracias a las mejoras que se han ido desarrollando en las líneas de transmisión y en los cables, existen aplicaciones en las que se aumenta el desempeño de RS-232   en   lo   que   respecta   a   la   distancia   y   velocidad   del   estándar.   RS-232   está   limitado   a comunicaciones de punto a punto entre los dispositivos y el puerto serial de la computadora. El hardware de RS-232 se puede utilizar para comunicaciones seriales en distancias de hasta 50 pies.

Este protocolo se está sustituyendo por el protocolo Universal Serial Bus (USB).

Page 5: motor paso a paso

Hyperterminal

Un   hyperterminal,   es   un   programa   que   permite   conectar   dispositivos   informáticos   o computadoras, sitios telnet de internet, servicios en línea, entre otros, por medio de un modem para ello no necesita usar comandos de línea y es un medio útil para configurar conexiones con otros   sitios   de   internet.

Sirve para enviar cualquier tipo de información o archivos pesados ya sean documentos, imágenes, videos, entre otros, a través del puerto serie. Una de sus ventajas es que no necesita un equipo especial  adicional  para enviar   información,  solo necesita tener un una conexión para modem, además funciona con mucha velocidad y envía la información en formato electrónico de forma directa.

El   hyper   terminal   trabaja   por   puerto   serial,   (red   punto   a   punto).Las características del hyperterminal son grabar mensajes bidireccionales por servicios o equipos situados al otro extremo de la conexión, transferir archivos grandes o pesados de un equipo a otro a   través   del   puerto   serie   y   ayuda   a   depurar   el   código   fuente   desde   un   terminal   remoto.Proyecto

El problema a solucionar con el microcontrolador es:

Controlar la secuencia de giro del motor para que se mueva 90, 270, 180 y 360, grados tanto a la izquierda como a la derecha.

Que cada que realice un giro regrese a su posición original. Generar un menú en la hipertermynal, para elegir el tipo de giro y mandar la instrucción 

de giro desde la computadora.

                                                                                       TX

                               USB

                                                                                       Rx

Laptop

En la laptop se desplego un menú de opciones, para que el usuario pueda escoger el tipo de giro y la dirección

USB/rs232 (DB9)

laptop Usb/rs232 (DB9)

micro Motor a pasos

Page 6: motor paso a paso

Esta etapa la sustituimos por   un convertidor USB-TTL, para esta práctica en específico utilizamos el convertidor USB-TTL-232R

El TTL-232R-PCB es un convertidor USB a TTL serial UART, el cual incorpora FTDI´s FT232RQ USB a una interfaz IC serial UART, el cual este dispositivo puede manejar todos los protocolos de la señal USB. Este convertidor incorpora una rápida y simple forma de conectar dispositivos con un nivel  TTL con una interfaz serial  a USB. Cabe mencionar que los niveles de voltaje que puede manejar este convertidor son de +5V o +3.3V. 

Micro

En esta etapa se crearon dos tablas de datos para ejecutar la secuencia de giro, una para giro a la derecha y otra para giro a la izquierda. Se diseñó un menú que será impreso   después de cada acción ejecutada. Se crearon ocho casos para los distintos grados de movimiento.

Motor a pasos

Se determinó el grado de giro para calcular el número de secuencias para mover el motor a la posición deseada.

PROGRAMA

#include <16f887.h>

#FUSES PUT,NOWDT,NOLVP,NOBROWNOUT,NOPROTECT,INTRC_IO 

#USE DELAY(CLOCK=8000000)

#USE RS232(BAUD=9600, PARITY=N, BITS=8, XMIT=PIN_C6, RCV=PIN_C7)

#USE FAST_IO(C)

#USE FAST_IO(B)

#BYTE MOTOR=0X06

CHAR TECLO;

INT N;

BYTE CONST TAB[4]={1 2 4 8}; //tabla para girar a la derecha

BYTE CONST TAB2[4]={4 2 1 8}; //tabla para girar a la izquierda

//INICIALIZAR

Page 7: motor paso a paso

INICIALIZAR(){

SET_TRIS_B(0);

SET_TRIS_C(0b10000000);

MOTOR=0;

TECLO=0;

}

//PROGRAMA

DERECHA(){

INT I;

FOR(I=0;I<N;I++){

INT J;

FOR(J=0;J<4;J++){

MOTOR=TAB[J];

DELAY_MS(500);

}

}

}

IZQUIERDA(){

INT I;

FOR(I=0;I<N;I++){

INT J;

FOR(J=0;J<4;J++){

MOTOR=TAB2[J];

DELAY_MS(500);

Page 8: motor paso a paso

}

}

}

//PRINCIPAL

MAIN(){

INICIO:

INICIALIZAR();

PUTS("MENU\n\r\n\r DERECHA\n\r  U=90°\n\r  I=180°\n\r  O=270°\n\r  P=360°\n\r");

PUTS(" IZQUIERDA\n\r  Q=90°\n\r  W=180°\n\r  E=270°\n\r  R=360°\n\r");

WHILE(TRUE){

IF(KBHIT()){

TECLO=GETC();

SWITCH (TECLO){

//DERECHA

CASE 0X75:

{PRINTF("MOTOR AVANZA 90° DERECHA\n\r");

N=3;

DERECHA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

IZQUIERDA();

GOTO INICIO;}

BREAK;

Page 9: motor paso a paso

CASE 0X69:

{PRINTF("MOTOR AVANZA 180° DERECHA\n\r");

N=6;

DERECHA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

IZQUIERDA();

GOTO INICIO;}

BREAK;

CASE 0X6F:

{PRINTF("MOTOR AVANZA 270° DERECHA\n\r");

N=9;

DERECHA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

IZQUIERDA();

GOTO INICIO;}

BREAK;

CASE 0X70:

{PRINTF("MOTOR AVANZA 360° DERECHA\n\r");

N=12;

DERECHA();

Page 10: motor paso a paso

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

IZQUIERDA();

GOTO INICIO;}

BREAK;

//IZQUIERDA

CASE 0X71:

{PRINTF("MOTOR AVANZA 90° IZQUIERDA\n\r");

N=3;

IZQUIERDA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

DERECHA();

GOTO INICIO;}

BREAK;

CASE 0X77:

{PRINTF("MOTOR AVANZA 180° IZQUIERDA\n\r");

N=6;

IZQUIERDA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

Page 11: motor paso a paso

DERECHA();

GOTO INICIO;}

BREAK;

CASE 0X65:

{PRINTF("MOTOR AVANZA 270° IZQUIERDA\n\r");

N=9;

IZQUIERDA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

DERECHA();

GOTO INICIO;}

BREAK;

CASE 0X72:

{

PRINTF("MOTOR AVANZA 360° IZQUIERDA\n\r");

N=12;

IZQUIERDA();

PRINTF("STOP\n\r");

DELAY_MS(3000);

PRINTF("RETURNING\n\r");

DERECHA();

GOTO INICIO;}

BREAK;

Page 12: motor paso a paso

DEFAULT:

{PRINTF("ERROR DE TECLA\n\r");}

}

}

}

}

Diagrama de conexión

Observaciones

Se tuvo que rectificar los datos que nos dio el fabricante acerca de los pasos que daba el motor.

Tuvimos problemas para usar una solo tabla que nos controlara los dos giros, pues  una de las funciones no se ejecutaban completas, así que hicimos dos tablas.

Bibliografía

http://perso.wanadoo.es/pictob/comserie.htm

Page 13: motor paso a paso

http://galia.fc.uaslp.mx/~cantocar/microcontroladores/SLIDES_8051_PDF/21_MOTOR.PDF

http://www.slideshare.net/Nancysc/hyperterminal-5716653