Cómo utilizar un puente H con Arduino – Control de un auto robot con L298N

En este artículo aprenderás a utilizar un puente H con tu placa Arduino para realizar control de motores de corriente directa (CD), con el, podrás manipular un auto robot, adaptarlo para hacer apertura y cierre de puertas, ventanas, o cualquier otro sistema donde necesites controlar la velocidad y dirección de giro de uno o más motores de CD.

¿Cómo funciona un motor de CD, cómo controlamos su giro?

Un motor de CD básicamente es una carga que, al alimentarlo con el voltaje necesario, realizará giros en una dirección. Todos los motores de CD tienen indicado una polaridad; es decir, una terminal positiva y una negativa. Si a un motor de CD le cambias la polaridad, lo único que pasará es que el giro lo realizará en el otro sentido.

Motores de corriente directa CD.
Motores de corriente directa CD.

Imagina que tienes un pequeño motor de CD que se alimenta con 6 V, si le ponemos un voltaje de 6 V en la polarización directa (positivo-positivo y negativo-negativo) el motor girará en un sentido:

Giro del motor en un sentido.
Giro del motor en un sentido.

Si ahora invertimos la fuente de voltaje (positivo-negativo y negativo-positivo), el motor simplemente girará en el otro sentido:

Giro del motor en sentido contrario.
Giro del motor en sentido contrario.

La velocidad del giro y el voltaje de alimentación están dados por el fabricante del motor de CD, por lo que siempre te recomiendo revisar las especificaciones técnicas del mismo fabricante para que conozcas sus características técnicas.

¿Qué es un puente H?

Antes de meter las manos a la programación, deberemos aprender los conceptos de un puente H. Un circuito conocido como puente H nos permite manipular la dirección de la corriente eléctrica en uno o en otro sentido, esto se logra por medio de cuatro transistores. Están ordenados de manera tal, que cuando necesitamos hacer girar el motor en una dirección, se activan dos; y cuando queremos hacer girar el motor en la otra dirección, activamos otros dos. Por la forma en que están distribuidos, es que se conoce como puente H, ya que se asemeja a esta letra (H).

Diagrama de un puente-H.
Diagrama de un puente-H.

Si activamos los transistores Q1 y Q3, tendremos la trayectoria mostrada en la siguiente imagen, haciendo que la corriente eléctrica cruce en un sentido al motor.

Corriente eléctrica en un sentido.
Corriente eléctrica en un sentido.

Si activamos los transistores Q2 y Q4, entonces tendremos una trayectoria en el sentido inverso a través del motor.

Corriente eléctrica en sentido inverso.
Corriente eléctrica en sentido inverso.

Entonces, el puente H nos ayudará a controlar la dirección de la corriente, por lo tanto, la dirección del giro del motor.

El driver L298N con Arduino

Existen varios módulos de puente H para utilizar con nuestras placas Arduino, el más utilizado es el que contiene al circuito integrado L298N. Este circuito integrado contiene dos puentes H, por lo que podremos controlar dos motores de CD al mismo tiempo. Como puedes observar en la siguiente imagen, el circuito integrado contiene dos entradas para cada puente, con ellas se controlan de manera estratégica cada par de transistores.

Estructura interna del L298N.
Estructura interna del L298N Fuente: Datasheet..

¿Te está gustando este artículo?

Te invito a descargar totalmente gratis la Guía de Inicio en Arduino

Encontrarás mucha información extra, conceptos y sobre todo podrás llevarla contigo en todo momento

Módulo L298N

El módulo que contiene al circuito integrado L298N es capaz de controlar el giro de dos motores de CD y contiene además algunas terminales de conexión y algunos jumpers (puentes de conexión). Es importante que revisemos para qué sirve cada cosa, ya que mediante ellos, controlaremos y alimentaremos nuestros motores.

Módulo puente H con Arduino.
Módulo puente H con Arduino.

Como puedes observar en la imagen anterior, el módulo L298N contiene dos pares de salidas, cada par es para controlar cada motor, por lo que puede controlar 2 motores. Para indicarle los sentidos de giro, el módulo contiene cuatro entradas llamadas IN1, hasta IN4. Las entradas IN1 e IN2, son para controlar el primer motor, y las entradas IN3 e IN4 son para controlar el segundo motor. También cuenta con entradas de habilitación, estas sirven para indicarle al módulo si queremos o no utilizar algunas de las salidas a motor. Para habilitar el motor 1 contamos con la entrada ENA, y para habilitar el motor 2 utilizaremos la entrada ENB. Si observas cuidadosamente, las entradas de habilitación traen un jumper (una conexión física, que podemos remover), este hace la labor de conectar con otro pin físicamente conectado a voltaje, por lo que si el jumper de las entradas de habilitación está colocado, ambas entradas de habilitación estarán encendidas. Si queremos controlar cuando habilitar o deshabilitar algún motor, deberemos remover este jumper y conectarle un cable a alguna salida de nuestro Arduino.

También contamos con entradas llamadas +12, GND y +5. Estas terminales tienen distintas funciones dependiendo del estado en el que se encuentre el Jumper1. Cuando dejamos conectado el Jumper1, la terminal +12 se utilizará para alimentar motores de entre 6 y 12 V, y la terminal +5 será una salida de 5 VCD. Cuando el Jumper1 está conectado, se activa un regulador de voltaje de 5 V para controlar la operación de los transistores para generar el giro. Cuando removemos el Jumper1, la terminal +12 se utilizará para alimentar motores de entre 12 y 35 V, y la terminal +5 será utilizada como entrada de 5 VCD, como no estamos utilizando el regulador interno, es necesario que insertemos una señal de 5 VCD para alimentar a los transistores internos.

Te recomiendo que para alimentar los motores, siempre utilices una fuente de voltaje distinta a la que utilizas para alimentar a la placa Arduino.

Entonces, deberemos fijarnos muy bien como conectar nuestros motores y los jumpers. Para resumirte este paso te dejo esta tablita:

JumperTerminal +12Terminal +5
ConectadoEntrada de 6 a 12 VCDSalida de 5 VDC
DesconectadoEntrada de 12 a 32 VCDEntrada de 5 VDC

Como vamos a utilizar dos fuentes de voltaje, una para los motores y otra para la placa Arduino, las tierras (GND), deberán estar conectadas entre sí

Cómo conectar el módulo L298N a tu Arduino

Si queremos siempre utilizar los motores a su máxima velocidad, las entradas de habilitación deberán estar siempre encendidas, por lo que dejaríamos conectados los dos jumpers de habilitación.

Para el primer ejemplo, conectaremos un módulo de 4 baterías AA para obtener 6 V, como los motores que utilizaremos son de 6 V, el voltaje apenas será suficiente para alimentarlos, pero no alcanzará para alimentar los transistores, por lo que deberemos insertar una señal de 5 V para este efecto, utilizando la salida de 5 V del Arduino. Conectaremos las entradas IN1 e IN2 a las salidas 2 y 3 del Arduino como se muestra a continuación. El Arduino lo estamos alimentando desde la PC.

Diagrama de conexiones para el ejercicio.
Diagrama de conexiones para el ejercicio.

Para crear los giros en el motor, debemos de controlar ambas entradas de la siguiente manera:

Dirección del giroAdelanteAtrásDetener
IN1 o IN3HIGHLOWLOW
IN2 o IN4LOWHIGHLOW

¿Muy sencillo no? Simplemente hay que considerar que cuando las entradas son distintas, se realiza un giro, cuando ambas son LOW se detienen. Solamente asegúrate de nunca poner ambas en HIGH al mismo tiempo.

Entonces para realizar la prueba, utilizaremos el siguiente código:

Con este código, le indicaremos al módulo que haga girar al motor en un sentido, haga una pausa de 3 segundos, y luego lo detenga por otros tres segundos e inmediatamente después gire en el sentido opuesto durante otros 3 segundos. Y esto se estará repitiendo constantemente.

En mi caso, estoy utilizando un pequeño motor con un reductor, por lo que la velocidad de giro es muy lenta pero con mucha fuerza.

Controlar dos motores de CD con el módulo L298N

Ahora controlaremos dos motores al mismo tiempo. Simplemente agregaremos las señales de control correspondientes para el segundo motor siguiendo la misma lógica utilizada en el ejemplo anterior. El código que utilizaremos y el diagrama de conexiones se muestran a continuación:

Control de dos motores de CD con puente H.
Control de dos motores de CD con puente H.

Este código realizará primero un movimiento a ambos motores en el mismo sentido durante 2 segundos, luego invertirá el giro del primer motor durante 3 segundos, luego se invierte el sentido de ambos motores, y finalmente se detienen por 3 segundos.

Variar la velocidad de un motor con el módulo L298N

Si necesitamos variar la velocidad del motor, deberemos controlar la entrada de habilitación, removiendo el jumper correspondiente y conectando un cable a alguna salida de tipo PWM del Arduino. Si no recuerdas que es una señal PWM, te dejo este artículo.

Utilizaremos el mismo esquema que en el ejemplo anterior, añadiendo una conexión entre el ENA y la salida 5 del Arduino.

Control de velocidad de motor de CD.
Control de velocidad de motor de CD.

Utilizaremos el siguiente código:

Si observas en el código, hemos creado una salida llamada enableA para manipular la entrada ENA del módulo. Esta salida tiene que ser de tipo PWM para cambiar el ancho del pulso de la señal que activará al transistor. En este ejercicio, enviamos a escribir la señal PWM mediante analogWrite y le enviamos un valor de 128 para crear un ancho de pulso del 50% del ciclo útil. Recuerda que una señal PWM puede ir del 0 al 100 % enviando valores de entre 0 y 255.

El código anterior, pondrá al motor a girar a una velocidad del 50% durante 3 segundos, luego a máxima velocidad durante 3 segundos, luego se detendrá durante 3 segundos, hará una pausa de 3 segundos y se repetirá de nuevo.

¿Qué proyecto se te ocurre implementar con este módulo? Déjame tus comentarios.


Hasta aquí el artículo de hoy, déjame todas tus preguntas, sugerencias y sobre todo envíame una imagen o video de tus proyectos, los podré agregar en próximos videos.

¡Hasta la próxima!

Recuerda visitar nuestras redes sociales

Etiquetas:

Deja un comentario