En este post vamos a estudiar el funcionamiento del puente H y en concreto el módulo driver L298N.
¿Para qué sirve un puente H driver L298N?
Debido al alto consumo de un motor, este no se puede conectar directamente a la salida de un microcontrolador, como por ejemplo Arduino.
Por lo tanto se hace necesaria de una electrónica que haga de interface entre la electrónica de control y la electrónica de potencia.
Una solución vista anteriormente consistía en situar en las salidas del microcontrolador transistores que con una pequeña corriente de control fueran capaces de controlar corrientes de mayor envergadura en la carga.
Pues bien para el caso concreto de motores, lo podemos lograr usando transistores en configuración de puente H, llamada así porque la forma del circuito recuerda a la letra H.
O bien podemos usar un driver, que es una placa que contiene un integrado y demás elementos de protección que nos facilitan bastante el uso de motores.
Este tipo de drivers los podemos usar con motores DC con o sin reductora y con motores paso a paso tanto unipolares como bipolares.
¿Cómo Funciona un puente H?
Si analizamos la siguiente figura podemos observar que:
En primer lugar tenemos un circuito formado por cuatro transistores NPN con sus resistencias de polarización de base, cuadro diodos en antiparalelo que cuya única misión es proteger a cada uno de los transistores en caso de sobrecorrientes inversas provocadas por los bobinados del motor y dos conmutadores con dos posiciones Vcc o masa.
Si quieres convertirte en un experto en Arduino pincha en el siguiente botón
Supongamos en principio SW1 en posición Vcc y Sw2 en posición GND, se saturan T1 y T4 por lo que se comportan como interruptores cerrados ya que caen 0,7v entre base-emisor de cada uno, el resto en las resistencias de base hasta Vcc.
Al motor le entra corriente a través de T1 y sale por T4.
T2 y T3 al estar sw2 en 0v o GND estarán cortados, se comportan como interruptores abiertos por no haber tensión en su base.
El sentido de la corriente seria el siguiente y el motor giraría en un sentido.
Si ahora cambiamos los conmutadores y ponemos SW1 a GND y SW2 a Vcc.
Tendremos en este caso que los transistores que se saturarán serán T2 y T3, mientras que T1 y T4 permanecerán cortados.
Por lo tanto al motor le entrará corriente a través de T3 y saldrá por T2, por lo que el motor girará en sentido inverso a la vez anterior.
Si ponemos ambos conmutadores en la posición de GND , el motor se parará.
La posición de los conmutadores en que ambos están en Vcc no es aconsejable ya que le estaríamos mandando al motor que girara a la vez en un sentido y en el contrario.
Características del driver doble puente H L298N
Doble puente H independiente
Chip principal: L298N
Corriente pico de operación: 4 Amperios
Corriente de operación: 2 Amperios
Corte de operación por sobrecalentamiento
Alimentación: 5-35Vdc
Consumo de corriente 36mA
8 diodos de protección contra sobrecorrientes inversas
Peso: 30g
Dimensiones: 43*43*27mm
Excelente inmunidad al ruido
Soporta dos motores dc o un motor paso a paso.
Uso del driver L298N:
Vamos a analizar los conectores y jumper de este módulo:
1. Bornera alimentación:
-Vcc: 6-35Vdc
-Gnd: 0v masa
5v: Doble comportamiento como entrada o salida de 5vdc.
2. ENA: Enable A habilitamos salidas out 1 y out 2 para el motor, si quitamos este jumper deshabilitamos salidas out 1 y out 2, con el jumper quitado si conectamos al pin ENA una salida PWM podremos controlar la velocidad del motor conectado en OUT 1-2.
3. IN1-2: Van emparejadas controlan el paro o sentido de giro del motor 1
IN 1 | IN2 | ESTADO |
0 | 0 | Motor parado |
0 | 1 | Giro en un sentido |
1 | 0 | Giro en sentido contrario |
1 | 1 | Indeseado no usar |
IN3-4: Igual que el anterior pero para el motor 2.
4. ENB: Igual que ENA pero para las salidas OUT3-4
5. 5v-gnd: Terminales en los que tenemos salidas de 5 voltios y gnd pueden venir bien si queremos bloquear un estado de las entradas IN mediante jumper, en la práctica estos pines no dan 5V sino que están por debajo de ese valor hasta que la tensión de alimentación por Vcc es igual o superior a 7 voltios.
6. Bornes de conexión OUT1-2: Aquí conectaremos un motor dc o dos de los terminales correspondientes a las fases de un motor paso a paso, estos conectores son función de las entradas IN1-2 según sea su estado las salidas out tomarán un valor u otro dependiendo de si queremos para el motor (0-0v), girar en un sentido (5v-0), o girar en sentido contrario (0-5v) en el caso de un motor dc.
7.Bornes de conexión OUT3-4: Igual que lo anterior pero para un segundo motor dc o 2 de las fases de un paso a paso.
8. Regulador de tensión: 7805
9. Circuito integrado L298N es un doble puente H contiene en su interior entre otros elementos los 4 transistores que estudiamos en el puente H con transistores.
10. Jumper JP1: cuando el jumper está puesto podremos alimentar entre 6 y 12v por Vcc el pin 5v del ítem 1 nos dará una tensión de salida de 5V podremos alimentar por ejemplo nuestro Arduino (máximo 500mA).
Cuando el jumper está quitado es para cuando vamos a alimentar con tensiones superiores a 12 voltios, en este caso deberemos alimentar el circuito con una alimentación externa de 5v ya que el pin 5V del item1 en este caso se comporta como entrada y no como Salida.
***Hay que tener la precaución de no alimentar con más de 12v con el jumper puesto ya que dañaremos la placa.
11. Diodos de protección contra sobretensiones debido a los bobinados del motor
Programa de Arduino puente H:
En este programa veremos como gira un motor dc en un sentido incrementando su velocidad para luego parar y arrancar un segundo motor haciendo lo mismo pero en sentido contrario y vuelta a empezar.
/*AUTOR: JOSE ANTONIO RIVERA MORALES *FECHA: 12-12-2019 *www.pasionelectronica.com * control de 2 motores DC normales, primero gira uno en un sentido * incrementando la velocidad progresivamente * hasta llegar al máximo, en ese momento se para * y comienza el segundo motor a realizar lo mismo * pero en sentido inverso y asi sucesivamente * */ int in1=2;//Asignamos los pines a las entradas del L298n int in2=3; int in3=4; int in4=5; int enA=9;//pines de habilitación motores para int enB=10;//ctrol velocidad mediante pwm void setup() { pinMode(in1,OUTPUT);//los configuramos como salidas pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(enA,OUTPUT); pinMode(enB,OUTPUT); } void loop() { for (int i=0;i<256;i++){//bucle for para que se incremente analogWrite(enA,i);//la velocidad poco a poco digitalWrite(in1,HIGH);//Giro sentido horario digitalWrite(in2,LOW); delay(100);//retardo para hacer más progresiva la velocidad } digitalWrite(in1,LOW);//paramos motor sentido horario digitalWrite(in2,LOW); delay(500);//esperamos medio segundo para iniciar motor 2 for (int j=0;j<256;j++){//lo mismo que antes pero para motor 2 analogWrite(enB,j); digitalWrite(in3,LOW);//sentido anti horario digitalWrite(in4,HIGH); delay(100); } digitalWrite(in3,LOW);//paramos motor sentido anti horario digitalWrite(in4,LOW); delay(500); }
Si te ha gustado este post no olvides compartirlo en tus redes sociales favoritas, muchas gracias por tu colaboración.