Está en la página 1de 10

Controlador de dos motores paso a paso

Aqu se describe un circuito que nos permite controlar dos motores paso a paso mediante cuatro pulsadores, si queremos tambin lo podemos hacer desde el PC a travs de un puerto serie con un programa hecho especialmente para ello. Si sabemos programar en alguno de los lenguajes habituales: Visual Basic, Delphi, C++ o cualquier otro que nos permita gestionar el puerto serie podemos hacer un programa de acuerdo a nuestras necesidades.

Descripcin y funcionamiento de un motor paso a paso:


Los motores unipolares tienen una toma intermedia en cada bobina, esta v a Vcc o a masa segn sea el circuito de control, luego solo tenemos que alimentar la bobina correspondiente. Tienen 6 cables pero en algunos modelos los dos comunes estn unidos internamente y solo tienen 5. Los motores bipolares no tienen toma intermedia en las bobinas y para controlarlos se necesita invertir la alimentacin de estas con un puente en "H" o un driver del tipo L293.

En los motores paso a paso se puede regular la velocidad y la direccin de giro como en los convencionales pero tienen la gran diferencia de que se pueden dejar en una posicin fija y se puede hacer un giro del nmero de grados o de vueltas que deseemos. El estator est hecho con varias bobinas y el rotor consta de un imn permanente con un nmero de polos que depende del ngulo de cada paso. El nmero de pasos por vuelta de estos motores suele ser de 200, 96, 48 o 24. El giro del motor se hace conectando secuencialmente las bobinas y atrayendo hacia ellas al rotor. Dependiendo de como se vayan activando esas bobinas podemos hacer girar el motor de tres modos diferentes:

Funcionamiento simple: Las bobinas se activan una a una por separado, de esta forma se consigue un poco menos de fuerza pero el consumo es menor.

Funcionamiento doble: Cada vez se activan dos bobinas, as el motor tiene ms fuerza ya que son dos bobinas las que arrastran y sujetan el rotor.

Medio paso: Es una mezcla de las dos anteriores, primero se activa una bobina y luego dos, as el ngulo de los pasos se reduce a la mitad al igual que la velocidad.

Caractersticas del circuito:


Permite controlar dos motores unipolares con 4 pulsadores o desde el PC. Velocidad regulable desde 1 a 255 milisegundos por paso. Direccin seleccionable. Modo de avance de medio paso o de paso completo. Desde el PC podemos activar en modo timer para que pare al cabo de un tiempo de 1 a 255 minutos. Desde el PC podemos enviar comando de avance de un nmero de pasos de 1 a 255.

Esquema:

Este circuito se ha diseado pensando en los motores unipolares que son los ms corrientes y ms sencillos de manejar. El microcontrolador PIC16F627 es el componente principal, l se comunica con el PC a travs de la UART a 9600 bps, recibe del PC las rdenes y contesta con el estado de los motores(velocidad, direccin, etc. Como el nmero de pines del PIC es limitado, dos de ellos(PB0 y PB3) se han usado para la conexin de los pulsadores P2 y P4 y adems para el control de los indicadores LED1 y LED2, estos indican el estado de los motores, el LED1 indica el estado del motor 1 y el LED2 indica el estado del motor 2, si estn parados los leds estarn apagados, si los motores estn en pausa los leds estarn intermitentes y si estn en marcha los leds estarn encendidos.

La alimentacin del circuito debe ir de acuerdo a la tensin de los motores que vamos a usar. Se ha puesto el diodo D1 para proteger el circuito ante las inversiones de polaridad.

El circuito integrado ULN2803 se compone de 8 drivers como el de la imagen que pueden manejar intensidades de hasta 500 mA., el PIC controla cada motor a travs cuatro de estos drivers. Si no es suficiente intensidad para los motores que queremos controlar o se calienta demasiado necesitaremos poner cuatro transistores de potencia adecuados a la intensidad que consuma nuestro motor, pero normalmente el ULN ya es suficiente para la mayora de motores.

Funciones de los pulsadores:


El pulsador P1 sirve para seleccionar el motor que vamos a controlar: si est sin apretar controlamos el motor 1 y si est pulsado controlaremos el motor 2, el resto de pulsadores P2, P3 y P4 nos permiten poner en marcha o parar el motor, variar la velocidad, etc.:

Pulsador P1: Si no se pulsa se controla el motor 1 con el resto de pulsadores, si est apretado se controla el motor 2. Pulsador P2: Disminuye la velocidad si el motor est en marcha, si est parado lo pone en pausa y cada pulsacin avanza un paso, si se mantiene apretado el motor girar continuamente a la izda. Pulsador P3: A cada pulsacin pone en marcha o para el motor. Si se pulsa ms de 5 segundos graba en la memoria del PIC el estado actual de los motores(velocidad, direccin, etc.) y ser como estarn al encender. Si se mantiene pulsado y al mismo tiempo se pulsa P1 la direccin del motor ser a la izda., y si en lugar de P1 se pulsa P4 ir a la dcha. Pulsador P4: Aumenta la velocidad si el motor est en marcha, si est parado lo pone en pausa y cada pulsacin avanza un paso, si se mantiene apretado el motor girar continuamente a la dcha. Configuracin del tipo de avance: Se enciende el circuito manteniendo un pulsador apretado, los leds se pondrn intermitentes para indicarlo; segn el pulsador que hayamos apretado el avance ser de un paso o de medio, esta configuracin ser guardada permanentemente en la memoria del PIC: P1: Avance de medio paso en el motor 1.; P2: Avance de un paso en el motor 1.; P3: Avance de medio paso en el motor 2. ; P4 Avance de un paso en el motor 2.

Notas:

Todos los motores tienen un lmite para la velocidad mxima, dependiendo del tipo de motor y del nmero de pasos unos admiten ms velocidad que otros. Para algunos motores el tiempo mnimo entre cada paso es de 5 milisegundos, si se pone menos vibran pero no giran. Las revoluciones por minuto dependen del nmero de pasos, a un motor de 200 pasos puesto a 2 milisegundos por paso le corresponden 150 R.P.M., a uno de 96 pasos 312 R.P.M., a uno de 48 pasos 625 R.P.M. y a uno de 24 1250 R.P.M. Si desde el ordenador queremos enviar un nmero de pasos determinado -por ejemplo una vuelta- es mejor poner antes en pausa el motor para que est alimentado antes y despues del giro y el eje quede sujeto. La diferencia entre pausa y paro es que en pausa el motor est alimentado y fijo en una posicin, en paro el motor est sin alimentacin y el eje libre.

Si un motor est mucho tiempo en pausa puede calentarse demasiado especialmente si est en modo de avance doble. No todos los motores tienen unos cables de colores standart para distinguir las bobinas, pero algunos tienen naranja y amarillo para una bobina y marrn y negro para otra; otros tienen rojo y rojo-blanco para una y verde y verde-blanco para otra.

Programa de control desde el PC:

Este programa nos permite controlar individualmente los dos motores, podemos ponerlos en marcha, ponerlos en pausa(parados pero alimentados) o pararlos. Tambin podemos hacer que avancen un nmero determinado de pasos(1 a 255) o usar el modo TIMER y ponerlos en marcha durante un tiempo de 1 a 255 minutos y luego quedarn parados. El programa tambin nos permite seleccionar el sentido de giro y el tipo de avance: medio paso o un paso. Con las barras deslizantes podemos regular la duracin de cada paso de 1 a 255 miliseg., segn este tiempo el programa calcula las revoluciones por minuto; para ello debemos de haber configurado(ver apartado siguiente) el nmero de pasos de cada motor ya que las R.P.M. dependen de la duracin de cada paso y del nmero de pasos del motor. Si el tipo de avance es de medio paso las R.P.M. sern la mitad. El botn superior derecho graba la configuracin en la EEPROM del PIC y al encender los motores estarn en el mismo estado que cuando salvamos la configuracin.

Al pulsar el botn de configuracin nos aparece la siguiente ventana que nos permite seleccionar el puerto serie del PC al que hemos conectado el controlador. Para poder ver las revoluciones por minuto de cada motor debemos poner el nmero de pasos que tiene cada uno, si no sabemos de cuantos pasos son, podemos seleccionar un nmero de pasos y enviarselos y ver cuantos corresponden a una vuelta completa.

Descarga del programa de control desde el PC.

Comandos de control desde el puerto serie:


Podemos hacer nuestro propio programa de control desde el PC conociendo los comandos de control a travs del puerto serie, el dilogo con el PC funciona a 9600 bps, 8 bits, sin paridad y un bit de stop. Los comandos a enviar por el puerto serie se componen de 3 bytes: el primero es el tipo de comando, el 2 el valor a enviar y el 3 es el checksum, este byte es la suma de los otros dos y sirve para que el PIC verifique que la comunicacin ha sido correcta; por ejemplo en el comando "92k " el cdigo ASCII del 9 es 57 y el del 2 es 50, por tanto el checksum que tenemos que enviar es 107 que corresponde al carcter k. Bytes de estado: El PIC contiene dos bytes de estado, uno por cada motor, de cada byte se usan solo los 4 bits LSB y tienen las siguientes funciones:

bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7

A 1 el motor est parado, a 0 en marcha. A 1 el motor est en pausa. Direccin del motor: a 1 a la dcha. y 0 a la izda. Tipo de avance: a 1 un paso, a 0 medio paso. Avance doble, si est a 1 este bit prevalece sobre el anterior. No usado. No usado. No usado.

Los bytes de estado de los motores, as como la velocidad se leen o escriben con los comandos de la siguiente tabla: "1xC " "1xC " "AxC " Enva un byte de estado al motor 1, el byte a enviar es el segundo carcter(x), el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Enva un byte de estado al motor 2, el byte a enviar es el segundo carcter(x), el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Enva la duracin de cada paso en milisegundos(1 a 255) al motor 1, el byte a enviar es el segundo carcter, el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Enva la duracin de cada paso en milisegundos(1 a 255) al motor 2, el byte a enviar es el segundo carcter, el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Enva comando de avance de un nmero de pasos al motor 1, el nmero de pasos a avanzar(1 a 255) v en el segundo byte(x), el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Enva comando de avance de un nmero de pasos al motor 2, el nmero de pasos a avanzar(1 a 255) v en el segundo byte(x), el tercero es el checksum. El PIC contesta con un byte que contiene el checksum

"BxC "

"PxC " "QxC "

"TxC "

"UxC " "G0w " "92k "

recibido del PC. Funcin de timer, activa el motor 1 durante un nmero determinado de minutos(1 a 255), este nmero v en el segundo byte, el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Funcin de timer, activa el motor 1 durante un nmero determinado de minutos(1 a 255), este nmero v en el segundo byte, el tercero es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. Graba en la memoria EEPROM del PIC el estado de los motores, este ser el estado en el que quedarn al encender el circuito. El PIC contesta con un byte que contiene el checksum recibido del PC. Lectura del estado de los motores, el PIC contesta con 5 bytes: el 1 contiene el byte de estado del motor 1, el 2 byte contiene el estado del motor 2, el 3 contiene la duracin de cada paso del motor 1, el 4 contiene la duracin de cada paso del motor 2 y el 5 byte es el checksum. Motores probados con el circuito descrito:

También podría gustarte