Saltar al contenido
Stepper Motor

¿Cómo controlar un motor paso a paso bipolar con el driver L293D?

Posiblemente en más de una ocasión hayas escuchado que los motores paso a paso bipolares son los más complicados de controlar, ya que debemos invertir la polaridad de la tensión aplicada en sus fases. Sin embargo gracias a las muy versátiles placas Arduino existen muchas formas sencillas y económicas de lograr esto.

Una de ellas es la que explicaremos a continuación, la cual consiste en utilizar el integrado L293D como driver. 

Características del driver  L293D

El L293D es un circuito integrado que consta internamente de dos puentes H. Esto lo podemos ver con más detalle en los siguientes diagramas

En el diagrama de la izquierda (Figura 1) se muestra la vista en planta del driver L293D y en la misma se pueden apreciar cada uno de sus 16 pines. Por otro lado, en la figura 2 se muestra el circuito esquemático de este driver, en el cual los triángulos numerados son los canales del driver. Cada canal representa la mitad de un puente H.

Pines del driver L293D y su funciones

Enable de los canales 1 y 2 (Pin 1), nos sirve para habilitar o inhabilitar el puente H del lado izquierdo (canales 1 y 2). De manera que si queremos hacer uso de este puente H debemos mandar un nivel lógico alto a esta entrada y un nivel lógico bajo en caso de que deseemos inhabilitarlo.

Enable de de los canales 3 y 4 (Pin 9), realiza la misma función que el pin 1, pero sobre el puente H de lado derecho (canales 3 y 4).

Los Pines 2, 7, 10 y 15 son las entradas de control de este driver. Mientras que los pines 2 y 7 controlan  el puente H del lado izquierdo (canales 1 y 2), los pines 10 y 15 controlan el de la derecha (canales 3 y 4). Estos pines deben ir conectados a 4 pines de salida del Arduino, de manera, que dependiendo de la combinación de niveles lógicos que enviemos a estos dos pares de entradas  obtengamos un flujo de corriente en un sentido u otro en las bobinas de nuestro motor.

Los pines 3, 6, 11 y 14 son las salidas del driver y a estas irán conectados los cables de nuestro motor paso a paso. Lo pines 3 y 6 corresponden a los canales 1 y 2, mientras que los pines 11 y 14 son las salidas de los canales 3 y 4.

A Vcc1 (pin 16) debe ir conectado el positivo de la fuente de alimentación para el L293D, la cual debe ser de 5 VDC. Ya que el consumo de corriente de este integrado es relativamente bajo, podemos obtener estos 5 VDC directamente del pin 5V de Arduino.

Vcc2 (pin 8) nos permite conectar otra fuente de alimentación externa cuyo voltaje esté comprendido entre 4.5 VDC y 36 VDC, lo cual nos servirá bastante para satisfacer el consumo de corriente de nuestro motor.

Los pines 4, 5, 12 y 13 son los pines de tierra  (GROUND). A estos pines debemos conectar tanto el pin (GND) de nuestro Arduino, como el terminal negativo de la fuente de alimentación Vcc2.

Para más información acerca del L293D puedes como siempre consulta el datasheet dado por el fabricante.

Circuito para controlar un motor de pasos bipolar con el driver L293D

Si realizamos la conexión de los componentes tomando en cuenta la información suministrada por el datasheet del L293D, nuestro circuito debe ser uno equivalente al que se muestra a continuación

Circuito para controlar motor de pasos bipolar
Circuito para controlar motor de pasos bipolar con Arduino y driver L293D

Conexionado del Arduino y el L293D:

  • Cable verde: conecta el pin 12 de Arduino con el pin 2 del L293D (Enable 1)
  • Cable azul: conecta el pin 11 de Arduino con el pin 7 del L293D (Enable 2)
  • Cable gris: conecta el pin 10 de Arduino con el pin 10 del L293D (Enable 3)
  • Cable naranja: conecta el pin 9 de Arduino con el pin 15 del L293D (Enable 4)

Para conectar nuestro motor de pasos al L293D sólo debemos unir una de sus fases a los pines 3 y 6, mientras que la otra fase la unimos a los pines 11 y 14 (Ver diagrama).

Programación para controlar motor PAP bipolar

Una vez que ya hemos armado el circuito de control, el último paso es programar nuestro Arduino. Para este ejemplo utilizaremos el siguiente código en el cual mandamos a girar a nuestro motor bipolar la cantidad de pasos ingresada por el monitor serial.

Si quieres más información sobre cómo utilizar las funciones de la librería Stepper.h de Arduino puedes visitar nuestro artículo haciendo clic en el siguiente enlace: Librería Stepper.h de Arduino.