Consultar ensayos de calidad


Control de motores paso a paso - Características del circuito, Funciones de los pulsadores



Controlador de dos motores paso a paso

[pic]
Aquí se describe un circuito que nos permite controlar dos motores paso a paso mediante cuatro pulsadores, si queremos también lo podemos hacer desde el PC a través 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.
[pic]Descripción y funcionamiento de un motor paso a paso:
pic] |Los motores unipolares tienen|[pic] |Los motores |
| |una toma intermedia en cada | |bipolares no tienen|
| |bobina, esta va a Vcc o a | |toma intermedia en |
| |masa según sea el circuito de| |las bobinas y para |
| |control, luego solo tenemos | |controlarlos se |


| |que alimentar la bobina | |necesita invertir |
| |correspondiente. Tienen 6 | |la alimentación de |
| |cables pero en algunos | |estas con un puente|
| |modelos los dos comunes estan| |en 'H' o un driver |
| |unidos internamente y solo | |del tipo L293. |
| |tienen 5.
| | |

En los motores paso a paso se puede regular la velocidad y la dirección de giro como en los convencionales pero tienen la gran diferencia de que se pueden dejar en una posición fija y se puede hacer un giro del número de grados o de vueltas que deseemos. El estator esta hecho con varias bobinas y el rotor consta de un iman permanente con un número de polos que depende del angulo de cada paso. El número 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 detres modos diferentes:
|[pic] |[pic] |[pic] |
|Funcionamiento simple: |Funcionamiento doble: |Medio paso: |
|Las bobinas se activan una a una por|Cada vez se activan dos bobinas, así|Es una mezcla de las dos anteriores, |
|separado, de esta forma se consigue |el motor tiene mas fuerza ya que son|primero se activa una bobina y luego |
|un poco menos de fuerza pero el |dos bobinas las que arrastran y |dos, así el angulo de los pasos se |
|consumo es menor. |sujetan el rotor. |reduce a la mitad al igual que la |
| | |velocidad.


[pic]Características del circuito:
• Permite controlar dos motores unipolares con 4 pulsadores o desde el PC.
• Velocidad regulable desde 1 a 255 milisegundos por paso.
• Dirección 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 número de pasos de 1 a 255.
[pic]Esquema
[pic]
Este circuito se ha diseñado pensando en los motores unipolares que son los mas corrientes y mas sencillos de manejar. El microcontrolador PIC16F627 es el componente principal, él se comunica con el PC a través de la UART a 9600 bps, recibe del PC las órdenes y contesta con el estado de los motores(velocidad, dirección, etc. Como el número de pines del PIC es limitado, dos de ellos(PB0 y PB3) se han usado para la conexión de los pulsadores P2 y P4 y ademas 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 estan parados los leds estaran apagados, si los motores estan en pausa los leds estaran intermitentes y si estan en marcha los leds estaran encendidos.
La alimentación del circuito debe ir de acuerdo a la tensión de los motores que vamos a usar. Se ha puesto el diodo D1 para proteger el circuito ante las inversiones de polaridad.
pic] |El circuito integrado ULN2803 se compone|
| |de 8 driverscomo el de la imagen que |
| |pueden manejar intensidades de hasta 500|
| |mA., el PIC controla cada motor a través|
| |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 mayoría de motores.
|

 
 
 
 
 
 

[pic]Funciones de los pulsadores:
El pulsador P1 sirve para seleccionar el motor que vamos a controlar: si esta sin apretar controlamos el motor 1 y si esta 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 esta  apretado se controla el motor 2.
Pulsador P2: Disminuye la velocidad si el motor esta  en marcha, si esta  parado lo pone en pausa y cada pulsación avanza un paso, si se mantiene apretado el motor girara continuamente a la izda.
Pulsador P3: A cada pulsación pone en marcha o para el motor. Si se pulsa mas de 5 segundos graba en la memoria del PIC el estado actual de los motores(velocidad, dirección, etc.) y sera como estaran al encender. Si se mantiene pulsado y al mismo tiempo se pulsa P1 la dirección del motor sera  a la izda., y si en lugar de P1 se pulsa P4 ira  a la dcha.
Pulsador P4: Aumenta la velocidad si el motor esta en marcha, si esta parado lo pone en pausa y cada pulsación avanza un paso, si se mantiene apretado el motor girara continuamente a la dcha.
Configuración del tipo de avance: Se enciende el circuitomanteniendo un pulsador apretado, los leds se pondran intermitentes para indicarlo; según el pulsador que hayamos apretado el avance sera de un paso o de medio, esta configuración sera 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.
[pic]
[pic]Notas
• Todos los motores tienen un límite para la velocidad maxima, dependiendo del tipo de motor y del número de pasos unos admiten mas velocidad que otros. Para algunos motores el tiempo mínimo entre cada paso es de 5 milisegundos, si se pone menos vibran pero no giran.
• Las revoluciones por minuto dependen del número 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 número 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 esta alimentado y fijo en una posición, en paro el motor esta sin alimentación y el eje libre.
• Si un motor esta mucho tiempo en pausa puede calentarse demasiado especialmente si esta 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 marrón y negro para otra; otros tienen rojo y rojo-blanco para una y verde y verde-blanco para otra.
 
[pic]
[pic]Programa de control desde el PC:
pic] |Este programa nos |
| |permite controlar |
| |individualmente los dos|
| |motores, podemos |
| |ponerlos en marcha, |
| |ponerlos en|
| |pausa(parados pero |
| |alimentados) o |
| |pararlos. |
| |También podemos hacer |
| |que avancen un número |
| |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 |
| |quedaran parados. |
| |El programa también nos|
| |permite seleccionar el |
| |sentido de giro y el |
| |tipo de avance: medio |
| |paso o un paso. Con las|
| |barras deslizantes |
| |podemos regular la|
| |duración de cada paso |
| |de 1 a 255 miliseg., |
| |según este tiempo el |
| |programa calcula las |
| |revoluciones por |
| |minuto; para ello |
| |debemos de haber |
| |configurado(ver |
| |apartado siguiente) el |
| |número de pasos de cada|
| |motor ya que las R.P.M.|
| |dependen de la duración|
| |de cada paso y del |
| |número de pasos del |
| |motor. Si el tipo de |
| |avance es de medio paso|
| |las R.P.M. seran la |
| |mitad.
|
| |El botón superior |
||derecho graba la |
| |configuración en la |
| |EEPROM del PIC y al |
| |encender los motores |
| |estaran en el mismo |
| |estado que cuando |
| |salvamos la |
| |configuración. |

 
pic] |Al pulsar el botón de configuración 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 número de pasos que |
| |tiene cada uno, si no sabemos de cuantos pasos |
| |son, podemos seleccionar un número de pasos y |
| |enviarselos y ver cuantos corresponden a una |
| |vuelta completa. |

 
[pic]Descarga del programa de control desde el PC.
[pic]
[pic]Comandos de control desde el puerto serie:
Podemos hacer nuestro propio programade control desde el PC conociendo los comandos de control a través del puerto serie, el dialogo 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 comunicación ha sido correcta; por ejemplo en el comando '92k ' el código ASCII del 9 es 57 y el del 2 es 50, por tanto el checksum que tenemos que enviar es 107 que corresponde al caracter 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 |A 1 el motor esta parado, a 0 en marcha. |
|bit 1 |A 1 el motor esta en pausa. |
|bit 2 |Dirección del motor: a 1 a la dcha. y 0 a la izda. |
|bit 3 |Tipo de avance: a 1 un paso, a 0 medio paso. |
|bit 4 |Avance doble, si esta a 1 este bit prevalece sobre el anterior. |
|bit 5 |No usado.
|
|bit 6 |No usado.
|
|bit 7 |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 ' |Envía un byte de estado al motor 1, el byte a enviar es el segundo caracter(x), el tercero |
| |es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. |
|'1xC ' |Envía un byte de estado al motor 2, el byte a enviar es el segundo caracter(x), el tercero |
| |es el checksum. El PIC contesta con un byte que contiene el checksum recibido del PC. |
|'AxC ' |Envía la duración de cada paso en milisegundos(1 a 255) al motor 1, el byte a enviar es el |
| |segundo caracter, el tercero es el checksum. El PIC contesta con un byte que contiene el |
| |checksum recibido del PC. |
|'BxC ' |Envía la duración de cada paso enmilisegundos(1 a 255) al motor 2, el byte a enviar es el |
| |segundo caracter, el tercero es el checksum. El PIC contesta con un byte que contiene el |
| |checksum recibido del PC. |
|'PxC ' |Envía comando de avance de un número de pasos al motor 1, el número de pasos a avanzar(1 a |
| |255) va en el segundo byte(x), el tercero es el checksum. El PIC contesta con un byte que |
| |contiene el checksum recibido del PC. |
|'QxC ' |Envía comando de avance de un número de pasos al motor 2, el número de pasos a avanzar(1 a |
| |255) va en el segundo byte(x), el tercero es el checksum. El PIC contesta con un byte que |
| |contiene el checksum recibido del PC. |
|'TxC ' |Función de timer, activa el motor 1 durante un número determinado de minutos(1 a 255), este|
| |número va en el segundo byte, el tercero es el checksum. El PIC contesta con un byte que |
| |contiene el checksum recibido del PC. |
|'UxC ' |Función de timer, activa el motor 1 durante un número determinado de minutos(1 a 255), este|
| |número va en el segundo byte, el tercero es el checksum. El PIC contesta con un byte que |
| |contiene el checksum recibido del PC. |
|'G0w ' |Graba en la memoria EEPROM del PIC el estado de los motores, este sera el estado en el que |
| |quedaran al encender el circuito. El PIC contesta con un byte que contiene el checksum |
| |recibido del PC. |
|'92k ' |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 duración |
| |de cada paso del motor 1, el 4º contiene la duración de cada paso del motor 2 y el 5º byte |
| |es el checksum.

[pic]
Motores probados con el circuito descrito:
[pic]
[pic]
El código del PIC no esta disponible, quién esté interesado en la construcción de este circuito puede solicitar el PIC16F627 programado.


Política de privacidad