PUENTE H
MÓDULO L298N PUENTE H
El módulo L298N es un controlador de motores (driver) con un
doble Puente H que permite manejar dos motores de corriente continua o un
motor paso a paso bipolar de entre 5V y 35V, de hasta 2 amperios, controlando
la velocidad y el sentido de giro de los motores. Este driver le debe su
nombre al circuito integrado L298N que lleva en su interior.
Un motor de corriente continua es un dispositivo que convierte energía eléctrica en energía electromotriz. Esta a su vez se destina, mediante engranajes, a producir movimiento.
▸Circuito Integrado principal: L298N
▸Canales: 2 (soporta 2 motores DC o 1 motor PAP)
▸Corriente constante de operación: 2 Amperios
▸Corriente pico de operación: 4 Amperios
▸Voltaje lógico: 5V
▸Voltaje de potencia (V motor): 5V - 35V DC
▸Consumo de corriente (lógico): 0 a 36mA
▸Potencia máxima: 25W
PARTES DEL L298N
▸Bornera de 3 pines para la alimentación del módulo (+12V, GND y
+5V).
▸Conector de 2 pines para el jumper de control del regulador de voltaje.
▸Conector de 6 pines para el control de los motores (ENA, IN1, IN2, IN3,
IN4 y ENB)
▸Dos borneras de 2 pines para la salida a los motores.
Los pines
de entrada que controlan la dirección y velocidad de giro.
Los pines ENA, IN1 e IN2 controlan la salida A.
Los pines ENB, IN3 e IN4 controlan la salida B.
Los pines IN1, IN2, y IN3 e IN4, controlan la dirección de giro,
respectivamente, de la salida A y B.
Los pines ENA y
ENB desactivan la salida. Podemos conectarlos permanentemente mediante el uso
de un jumper, o conectar una señal PWM para controlar la velocidad de giro.
En el caso de querer usar ambas fases, y poder elegir tanto el sentido de giro como la velocidad, y alimentar desde una fuente de 12V, al pin Vin de Arduino (usando el regulador de voltaje de Arduino), o desde el pin Vlogico del L298N al pin 5V de Arduino (usando el regulador del L298N).
En la parte inferior se encuentran los pines de control del módulo, marcados como IN1, IN2, IN3 e IN4. A los lados de estas señales se encuentra un pin de 5V preparado para colocar puentes de selección (jumpers) que habilitar cada una de las salidas del módulo, A y B).
Los pines de habilitación son nombrados, respectivamente, ENA y ENB (Enable = habilitación).
CONEXIÓN DE ALIMENTACIÓN
▸Cuando el jumper de selección de 5V se encuentra activo, el módulo
permite una alimentación de entre 5V a 12V DC. Como el regulador se encuentra
activo, la bornera marcado como +5V tendrá un voltaje de salida de 5V DC.
▸Cuando el jumper de selección de 5V se encuentra inactivo, el módulo
permite una alimentación de entre 12V a 35V DC. Como el regulador de 5V no está
funcionando, tendremos que conectar la bornera de +5V a una fuente
de 5V para alimentar la parte lógica del L298N.
Nota: No se debe conectar una tensión de entrada al pin de +5V cuando se encuentre colocado el puente de selección de 5V. Esto provocaría un conflicto entre ambas fuentes de alimentación y podría dañar permanentemente el módulo.
FUNCIONAMIENTO
El L298N consiste en dos puentes-H, uno para la salida A y otro
para la salida B.
Un puente-H es un componente para alimentar una carga de forma que se pueda invertir el sentido de la corriente que le atraviesa.
Internamente un puente-H es una formación de cuatro (4) transistores,
conectados entre Vcc y GND, con la carga a alimentar entre ellos. Dibujado en
esquema el conjunto tiene forma de "H", de la que recibe su nombre su
nombre.
(1). CONTROL DE UN MOTOR
El programa activará el motor en un sentido por cinco segundos, luego detiene el motor por seis segundos, después activa el motor en sentido inverso por cinco segundos, y por último detiene el motor durante seis segundos. Este ciclo se repite indefinidamente.
/*Control de un motor CC utilizando el módulo L298N*/
int IN1 = 2;
int IN2 = 3;
void setup ()
{
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
}
void loop ()
{
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
delay (5000);
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
delay (5000);
}
Programación:
/*Control de un motor CC utilizando el
módulo L298N*/
int ENB = 3; // ENB conectada al pin
3 (sin el jumper en ENB)
int IN3 = 5; // Input4 conectada al
pin 5
int IN4 = 4; // Input3 conectada al
pin 4
void setup ()
{
pinMode (ENB, OUTPUT); // ENB
pinMode (IN4, OUTPUT); // Input4
pinMode (IN3, OUTPUT); // Input3
digitalWrite (ENB, HIGH); // ALTO habilita la salida B (sin el jumper en
ENB)
}
void loop ()
{ //
Motor gira en un sentido
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay (5000);
// Motor no gira
digitalWrite (IN4, LOW);
delay (600);
// Motor gira en sentido inverso
digitalWrite (IN3, HIGH);
delay (5000);
// Motor no gira
digitalWrite (IN3, LOW);
delay (6000);
}
(2). CONTROL DE UN MOTOR, con Variación de Velocidad
Para controlar la velocidad del motor, se debe hacer uso de una salida PWM, en este caso la salida digital 3 del Arduino Uno. Esta señal PWM será aplicada a los pines de activación de cada salida, ENA y ENB respectivamente, de manera que en este caso los jumper de habilitación a +5V no deben ser colocados.
Nota: Puede probar diversos valores de velocidad, pero nunca baje el valor 55 porque un motor que no esté libre (con caja de engranajes, por ejemplo) pude quedar sin girar pero alimentado, lo que producirá una corriente elevada.
Programación:
/* Cambio
de velocidad de un motor CC utilizando el módulo L298N*/
int ENB = 3; // ENB conectada al pin
3 (PWM de Arduino)
int IN3 = 5; // Input4 conectada al
pin 5
int IN4 = 4; // Input3 conectada al
pin 4
void setup ()
{
pinMode (ENB, OUTPUT); // ENB
pinMode (IN4, OUTPUT); // Input4
pinMode (IN3, OUTPUT); // Input3
analogWrite (ENB,0); // Apagado del motor
}
void loop ()
{
// Aplicamos PWM al pin ENB, haciendo
girar el motor, cada 2 segundos aumenta la velocidad
analogWrite (ENB,55); // Velocidad mínima
delay (2000);
analogWrite (ENB,105); // Velocidad media
delay (2000);
analogWrite (ENB,255); // Velocidad máxima
delay (2000);
analogWrite (ENB,0); // Apagamos el
motor y esperamos 5 segundos
delay (5000);
}
(3). GIRO DE MOTORES, invocando funciones
int ENA = 10;
int IN1 = 9;
int IN2 = 8
int ENB = 5;
int IN3 = 7;
int IN4 = 6;
void setup ()
{
pinMode (ENA, OUTPUT);
pinMode (ENB, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void Adelante ()
{
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
analogWrite (ENA, 200);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
analogWrite (ENB, 200);
}
void Atras ()
{
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
analogWrite (ENA, 110);
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
analogWrite (ENB, 110);
}
void Derecha ()
{
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
analogWrite (ENA, 100);
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
analogWrite (ENB, 100);
}
void Izquierda ()
{
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
analogWrite (ENA, 50);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
analogWrite (ENB, 50);
}
void Parar ()
{
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
analogWrite (ENA, 0);
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
analogWrite (ENB, 0);
}
void loop ()
{
Adelante ();
delay (5000);
Atras ();
delay (5000);
Derecha ();
delay (3000);
Izquierda ();
delay (3000);
Parar ();
delay (4000);
}
(4). CONTROL DE MOTORES CON L298
Programación:
(6). SEGUIDOR DE LÍNEA
L293D
El circuito
integrado L293D es un controlador de motores, construido con cuatro mitades de
puente-H. Está característica permite controlar distintas cantidades de motores.
Por ejemplo, puede controlar 4 motores de DC unidireccionalmente o 2 motores-DC
en ambas direcciones. También podría controlador un motor a pasos de bipolar.
Una de las principales
ventajas del controlador, es que permite una alimentación independiente para
los motores. Por ejemplo, se pueden controlar motores desde los 4.5 VDC hasta
36 VDC. Cuando se manejan potencias mayores a 5 Watts (P = V*I), se necesita un
buen disipador. El voltaje lógico de control es de 5 VDC. A pesar de esta
restricción, podría ser controlado con lógica de 3.3 V. La desventaja de usar
lógica de 3.3 V es que aún requeriría una fuente de 5 VDC conectada al pin 16.
CONTROL DE DOS MOTORES CON L293D
CONTROL DE UN MOTOR CON L293D
0 Comentarios