Puente H L293D para controlar motores
Hayas venido aquí para aprender a usar un puente H en general, el L293D en particular, o simplemente busques la manera de controlar la dirección y velocidad de un motor, estas en la página adecuada, ¡así que sigue leyendo!
¿Qué es un puente H?
Un puente H es un circuito que nos permite invertir la polaridad de un motor, permitiéndonos invertir la dirección de giro de este. Puedes visualizarlo como un set de 4 interruptores, como en la ilustración siguiente:
Dependiendo de que interruptores activemos, la corriente fluirá en una dirección o en otra a través del motor, lo que hará que gire en un sentido o en el contrario:
La mayoría de puentes H actuales se pueden comprar en forma de circuito integrado, y los interruptores suelen ser transistores, lo que nos ofrece la posibilidad de controlar una potencia grande en el motor mediante señales de control de una potencia mucho más reducida.
Así pues, en resumen, los puentes H son componentes que nos ofrecen las siguientes posibilidades:
- Habilidad para invertir el sentido de giro de un motor;
- habilidad para utilizar una fuente de alimentación de mayor frecuencia para el motor que para la lógica (normalmente el Arduino que controla el circuito);
- habilidad para controlar la potencia del motor (siempre que tenga una entrada «enable»).
L293D
Puente H L293D
Trabajamos con el L293D porque se trata de un componente sencillo, de uso generalista y muy popular. Aquí puedes comprobar su hoja de datos, pero a continuación expongo los datos más relevantes:
- 600mA por canal, con 1.2A de pico;
- tiene «enable» (nos permite controlar la velocidad);
- hasta 36V de entrada.
Esquemático
Con la ayuda de la hoja de datos, conectamos el IC a un motor y a nuestro Arduino de la siguiente manera:
El L293D permite controlar 2 motores a la vez con esta configuración, pero nosotros solo controlaremos uno en este tutorial, por lo que el lado derecho estará casi enteramente despoblado.
Usaremos 3 pines para controlar el motor, los pines 2 y 3 para controlar la dirección y el pin 5 para controlar la velocidad. Los pines 2 y 3 controlaran los interruptores dentro del puente H para invertir la polaridad, pero el pin 5 utilizara una señal PWM para indicar al puente H cuanto tiempo debe estar encendido por ciclo, lo cual se traduce en un voltaje más o menos alto de media en las bobinas del motor y nos permite controlar su velocidad.
Así pues, los pines 2 y 3 del Arduino irán a los pines de entrada del L293D y el pin 5 del Arduino irá al pin de enable.
Alimentaremos el circuito integrado L293D de dos maneras: la lógica del L293D la alimentaremos mediante la salida de 5V de Arduino, mientras que la alimentación de potencia, la que alimentará los motores, la conectaremos desde una batería de 9V.
Solo falta conectar los bornes del motor a las salidas del L293D y asegurarnos de que todos los componentes comparten la misma tierra.
Código
Ver en GithubCon tan solo cambiar el valor de los pines 2 y 3 de alto a bajo y viceversa, podemos controlar la dirección del motor. La velocidad la controlamos mediante el pin 5:
Con el código mostrado, probamos a girar el motor en una dirección y en otra a diferentes potencias, cambiando cada 3 segundos.
Diferentes estados
Según la misma hoja de datos enlazada anteriormente, podemos escoger entre 5 estados diferentes variando nuestras salidas:
EN / Pin 5 Arduino | 1A / Pin 2 Arduino | 2A / Pin 3 Arduino | Función |
---|---|---|---|
ALTO | BAJO | ALTO | Giro antihorario |
ALTO | ALTO | BAJO | Giro horario |
ALTO | BAJO | BAJO | Parada rápida |
ALTO | ALTO | ALTO | Parada rápida |
BAJO |
Da igual | Da igual | Parada sin frenado |
Eso es todo, me gustaría saber qué proyectos tienes pensados con estos motores, ¿algo rápido y furioso?