Driver para motores paso a paso unipolares con 74LS194

Introducción

Driver para motores paso a paso
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.

Imagen:DriverPAP194-2.gif


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.

Imagen:DriverPAP194-3.gif
Orden en que deben conectarse las bobinas.

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.
Imagen:DriverPAP194-4.gif
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:

Imagen:DriverPAP194-5.gif

El esquema de la figura es una version simplificada del interior del circuito integrado 74LS194

Imagen:DriverPAP194-6.gif

Este es el aspecto del driver ya montado. La funcion de cada borne puede consultarse en el esquema correspondiente, mas abajo.

Imagen:DriverPAP194-1.jpg

Para reducir la altura del circuito final, puede cortarse la aleta disipadora del LM7805, tal como se ve en la fotografía:

Imagen:DriverPAP194-7.jpg

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.
Imagen:DriverPAP194-8.gif

Esquema del PCB.

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:

Imagen:DriverPAP194-10.gif

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:

Imagen:DriverPAP194-11.gif

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).
Imagen:DriverPAP194-12.gif

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:
Imagen:DriverPAP194-13.gif
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:

Imagen:DriverPAP194-14.gif

Control externo mediante optoacopladores

Otra forma de control, utilizando optoacopladores para aislar el driver del circuito que lo controla:

Imagen:DriverPAP194-15.gif

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.
Imagen:DriverPAP194-16.gif

Bajas velocidades de giro

Agregando un condensador adicional es posible obtener frecuencias de CLOCK más bajas. El esquema siguiente muestra como conectarlo.
Imagen:DriverPAP194-17.gif

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