Introducción
Driver para motores paso a paso |
En este artículo veremos como construir un sencillo y razonablemente economico driver para motores paso a paso del tipo unipolar. Dicho driver podrá utilizarse con motores de baja potencia y no necesita de un microcontrolador para funcionar. Puede ser un buen punto de partida para diseñar tu propio driver.
El circuito se basa en circuito integrado 74LS194 (un registro de desplazamiento
bidireccional). Está diseñado para ofrecer las funciones básicas de
control, como Avance (Forward), Retroceso (Reverse), Parada (Stop) y
ajuste de la velocidad de giro en hasta 100 pasos por minuto.
No se trata de un proyecto complejo, y todas las partes empleadas
pueden conseguirse con facilidad. El método elegido para alterar el
sentido de giro es una llave, pero como verás, es muy facil cambiar esto
para que pueda ser controlado desde el puerto paralelo de un ordenador o
desde un microcontrolador.
El control de la velocidad se realiza mediante un potenciómetro, aunque también podría emplearse para ello un dispositivo como los mencionados anteriormente.
NOTA: Debido a la falta de detección o corrección de
errores y la potencia de salida limitada, este circuito no debe ser
utilizado para aplicaciones que requieren una gran precisión en el
control o posicionamiento. El driver está pensado para el aprendizaje y
la utilización en pequeños robots de aficionados.
Circuito básico del driver
La figura siguiente nos muestra el circuito básico empleado. En color azul puede verse la línea de CLOCK.
Funcionamiento del circuito
Un circuito integrado NE555 funcionando como oscilador estable proporciona los pulsos de CLOCK necesarios y se envían al pin 11 del circuito integrado 74LS194.
Cada vez que CLOCK esta en alto (positivo) el estado de
las salidas del 74LS194 (pines 12, 13, 14 y 15) son rotadas. Puedes
consultar el diagrama que aparece más abajo para ver los detalles.
La dirección de esta rotación se determina mediante la llave S2. Cuando S2 está en la posición central (OFF), el motor se detiene.
Cuando la base del transistor Q6 esta a nivel bajo, las salidas del 74LS194 cambian en el orden 12 - 15 - 14 - 13 - 12 , etc.
Cuando la base del transistor Q6 esta a nivel alto, las salidas del 74LS194 cambian en el orden 12 - 13 - 14 - 15 - 12 , etc.
Los pulsos existentes en las salidas del 74HC194 se envian al motor a travez de un circuito integrado ULN2003. Este se encarga de manejar la corriente necesaria para exitar las bobinas.
Circuitos integrados empleados
- 74LS194, registro de desplazamiento bidireccional de 4 bits
- 74LS74, Doble slip-flop tipo D con Preset y Clear
- ULN2003, Driver darlington de 7 canales, 500mA por canal, 50V máximo.
- NE555, configurado como oscilador astable.
Nota: los circuitos integrados de la serie 7400 son
considerados obsoletos, no obstante son fáciles de conseguir y su costo
es muy bajo. Esta es la razón por la que se los ha elegido para este
proyecto.
El diagrama siguiente muestra la forma en que deben energizarse
las salidas del ULN2003 para hacer girar el motor hacia delante y hacia
atrás. Los números de los pines no se han incluido ya que el conexionado
final dependerá del diseño del PCB.
Cada pulso positivo en las salidas del 74LS194 provocará el encendido de una de las bobinas del motor.
Notas sobre el circuito
- Con los valores indicados en el esquema y C1 = 1 uF, el valor de R1 = 0 ohm hará que la frecuencia de CLOCK sea aproximadamente de 100KHz. Esto hace que el motor avance unos 100 pasos por segundo, velocidad limite para la mayoría de los motores paso a paso.
- Si se incrementase la velocidad, no solo disminuiría el torque disponible sino que también se correría el riesgo de que el motor “pierda” pasos. Se pueden probar diferentes valores para C1 y R1 para producir la frecuencia máxima mas adecuada para cada motor en particular. Este valor dependerá exclusivamente de las características constructivas del mismo.
- Si R1 adopta un valor cercano a 1 Megohm, la frecuencia del CLOCK disminuirá a cerca de un Hz, haciendo que el motor avance un paso por segundo.
- No hay, al menos en teoría, un valor mínimo de velocidad a la que pueda girar un motor paso a paso. Esto permite utilizar valores de C1 y R1 tan grandes como se desee, siempre dentro de los valores aconsejados en la hoja de datos del NE555.
- El circuito impreso propuesto permite la conexión de la resistencia variable R1 en una bornera, que también puede emplearse como punto de entrada para pulsos de control externos.
- La llave S1, que aparece en el diagrama de más abajo, permite la detención del motor al interrumpir la generación de pulsos de CLOCK del NE555. S1 puede ser reemplazado por un transistor NPN para controlar electrónicamente la generación de pulsos de CLOCK.
- Los pulsos de CLOCK pueden ser provistos por un circuito externo, pero cualquier ruido en estos podría colocar al registro de desplazamiento en un valor erróneo. En caso de emplearse, deben ser pulsos “limpios”. Estos pulsos deberían pasar a través del NE555, situación que esta prevista en el circuito impreso.
- El 74LS74 no cumple otra función más que proporcionar el control del 74LS194, fijando la dirección de giro con la ayuda de los transistores Q6 y Q7 y la llave S2. Estrictamente hablando, el método de control que ofrece te sistema no es el mejor, pero a las relativamente bajas frecuencias a las que opera el circuito (menores a 100KHz) funciona perfectamente.
- El resistor de 3.3K y el condensador de 4.7 uF conectados en el terminal SET (pines 4 y 10 del 74LS74) aseguran que las salidas (pines 6 y 8) permanezcan en estado bajo durante el encendido del circuito.
- Al alimentar el circuito, es posible que no todas las salidas del 74LS194 esten en estado bajo. Por este motivo, la fuente de poder que alimente el circuito debe ser capaz de soportar la carga de las cuatro bobinas energizadas al mismo tiempo, ya que durante un instante mas o menos largo (dependiendo de la posición de R1).
- Este circuito puede ser comandado desde otro, o desde el puerto paralelo de un ordenador. Para que este sistema de control externo funcione, se debe garantizar que la base de los transistores Q6 y Q7 sea de al menos 0.7V. Puede que sea necesario utilizar un transistor adicional para lograr este objetivo.
- En caso de energizar simultaneamente los transistores Q6 y Q7, el 74LS194 efectuara un RESET, deteniendo el giro del motor y energizando su salida numero 15 cuando reciba el próximo pulso de CLOCK.
- El circuito necesita de una fuente de 5V de corriente contínua perfectamente estabilizada para funcionar, que no se ha incluido en el esquema.
- Existen una gran variedad de motores paso a paso. Debe asegurarse que el elegido para ser empleado con este sistema se alimente con tensiones inferiores a los 24V y no consuma mas de 500mA.
Probando el controlador
Simplemente colocando un LED en cada salida podemos comprobar visualmente el funcionamiento del circuito.
En el esquema pueden verse los dos Flip Flop "D" incluidos en el 74LS74. La sección FF1 se utiliza como un divisor binario, mientras que FF2
funciona como un Flip Flop "RS". Despues de cada pulso de CLOCK, el
Flip Flop es puesto en SET, con Q en alto. Esto permite comandar al 74LS194 secuenciar sus salidas en uno u otro sentido de acuerdo a la posición de S2.
La llave S1 permite detener la generación de pulsos de CLOCK.
Los terminales POWER (14), COMMON (7) y CLEAR (1 y 13) del 74LS74 no se muestran, pero los correspondientes a CLEAR deben conectarse a +5V.
El siguiente grafico muestra las formas de onda que se pueden encontrar a la salida del driver:
El esquema de la figura es una version simplificada del interior del circuito integrado 74LS194
Este es el aspecto del driver ya montado. La funcion de cada borne puede consultarse en el esquema correspondiente, mas abajo.
Para reducir la altura del circuito final, puede cortarse la aleta disipadora del LM7805, tal como se ve en la fotografía:
En la página del autor de la nota pueden adquirirse las placas de circuito impreso listas para usar. También puedes consultarlo en su dirección de correo].
Esquema de la placa de circuito impreso
El siguiente esquema muestra la posición de cada componente sobre la
placa de circuito impreso y la función de cada borne de conexión.
Lista de componentes
- 1 x 74LS194
- 1 x 74LS74
- 1 x ULN2003AN
- 1 x NE555N
- 1 x L7805ACV
- 2 x 2N3904
- 1 x 512-1N4001
- 1 x 470uF/35V
- 1 x 10uF/25V
- 1 x 4.7uF/25V
- 1 x 1uF/25V
- 1 x GREEN 3mm LED
- 3 x 10K 1/4W
- 2 x 3.3K 1/4W
- 1 x 470 OHM 1/4W
- 2 x 2 POS. TERMINAL BLOCK
- 3 x 3 POS. TERMINAL BLOCK
Alejando el motor del driver
Si el motor va a emplearse a una distancia importante del
controlador, deben separarse los bornes de alimentación, tal como se ve
en el esquema:
Esto evita que los pulsos generados por el motor introduzcan ruidos en la fuente de alimentación.
Usando motores de 6 terminales
Algunos motores paso a paso disponen de 6 terminales. La siguiente
imagen muestra la forma en que deberian conectarse al controlador:
Configuración para pasos simples #1
Las conexiones que se muestran en el siguiente diagrama permiten al
motor operar paso a paso. Una llave permite utilizar el controlador en
este modo o en modo de giro continuo (para ello tambien debe incluirse
el potenciometro de 1 Megohm).
NOTA: Utilizando el esquema anterior, el motor no se moverá correctamente los dos primeros pasos. Esto se debe a que el 74LS74 mantiene desabilitado el control de dirección hasta que el 74LS194 complete su inicialización.
Configuración para pasos simples #2
Otra forma sencilla de controla el motor para que avance paso a paso puede verse en el diagrama de abajo:
Como puede apreciarse, se ha reemplazado la llave S2 por dos
pulsadores, que pueden decidir la direccion de giro mientras el
potenciometro se ajusta para obtener una frecuencia de reloj
relativamente baja.
Control externo utilizando transistores
Como se mencionó antes, es posible comandar el driver mediante la utilización de transistores. Este ssitema permite operar la placa controladora desde otro circuito o desde un ordenador:
Control externo mediante optoacopladores
Otra forma de control, utilizando optoacopladores para aislar el driver del circuito que lo controla:
Control automático
Este circuito reemplaza la llave S2 por un control automatico basado en dos amplificadores operacionales. Esto brinda una "ventana" dentro de la cual el motor girará en uno u otro sentido.
El potenciometro R IN puede ser reemplazado por un sensor de temperatura o de luz. LS1 y LS2 funcionan como sensores de fin de carrera, que evitan que el motor continue girando más allá del punto fijado.
Bajas velocidades de giro
Agregando un condensador adicional es posible obtener frecuencias de CLOCK más bajas. El esquema siguiente muestra como conectarlo.
Información adicional
- Animación que muestra el funcionamiento de un motor paso a paso
- Las sitios siguientes contienen información interesante sobre el tema:
- El driver ha sido probado con los siguientes motores:
JAPAN SERVO CO. (de un viejo floppy drive) TYPE KP4M4-001 75 OHM / PHASE 0.15 AMP / PHASE
AIRPAX : LA82720-M1 24 VOLT 60 OHMS / COIL 7.5 DEGREES / STEP