Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿QUÉ ES UN L298N?
El L298N es un controlador (driver) de motores, que permite encender y
controlar dos motores de corriente continua desde Arduino, variando tanto la
dirección como la velocidad de giro.
Sin embargo, el L298N tiene una eficiencia baja. La electrónica supone una caída
de tensión de unos 3V, es decir, la tensión que recibe el motor es unos 3V inferior a la
tensión de alimentación.
¿CÓMO FUNCIONA UN L298N?
Básicamente un L298N consiste en dos puentes-H, uno para la salida A y otro
para la salida B.
Un puente-H es un
componente ampliamente
utilizado en electrónica para
alimentar una carga de forma
que podemos invertir el sentido
de la corrienteque le atraviesa.
Internamente un puente-H es
una formación de 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.
Dos de estos pines, IN1 y IN2 (IN3 y IN4 para la salida B), controlan el encendido
de los transistores de cada una de las dos ramas, encendiendo el ramal superior o
inferior de la misma.
La placa de conexión del L298N incorpora una entrada de voltaje, una serie de
jumpers para configurar el módulo, dos salidas A y B, y los pines de entrada que
regulan la velocidad y el sentido de giro.
Por otro lado, tenemos las dos clemas de conexión A y B que suministran la salida
a los motores.
Los pines IN1, IN2, y IN3 e IN4, controlan la dirección de giro, respectivamente, de
la salida A y B.
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, el esquema de conexión a
Arduino sería el siguiente.
Esquema Electrónico Montaje al Arduino
PIN OUT
La alimentación de Arduino en este caso podría realizarse desde la 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).
Siempre que se use más de una fuente de tensión recordar poner en común todos los
GND incluido el de Arduino. De lo contrario se puede dañar un componente.
EJEMPLOS DE CÓDIGO
Para controlar los dos motores, debemos activar correctamente las salidas
digitales conectadas a los pines IN1 y IN2 (salida A), o los pines IN3 e IN4 (salida B).
Respecto a los pines ENA y ENB, usaremos una salida PWM para controlar la
velocidad de giro.
CÓDIGO DE EJEMPLO
Movimiento del motor en dos direcciones a máxima velocidad
void setup()
{
pinMode(pinIN1, OUTPUT); // Declaración de Salida
pinMode(pinIN2, OUTPUT);
void loop()
{
// Giro hacia adelante por 5 Segundos
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
delay(5000);
// Parada de motor
digitalWrite(pinIN1, LOW);
digitalWrite(pinIN2, LOW);
delay(1000);
// Parada de motor
digitalWrite(pinIN1, LOW);
digitalWrite(pinIN2, LOW);
delay(1000);
}
void setup()
{
pinMode(pinIN1, OUTPUT);
pinMode(pinIN2, OUTPUT);
pinMode(pinENA, OUTPUT);
}
void loop()
{
// Giro hacia adelante por 5 Segundos
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, speed); // Control de Velocidad X
delay(5000);
// Parada de motor
digitalWrite(pinIN1, LOW);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, speed);
delay(1000);
// Giro hacia atras por 5 Segundos
digitalWrite(pinIN1, LOW);
digitalWrite(pinIN2, HIGH);
analogWrite(pinENA, speed);
delay(5000);
// Parada de motor
digitalWrite(pinIN1, LOW);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, speed);
delay(1000);
}
Practica
Controle la velocidad del motor utilizando un potenciómetro
Controle la velocidad del motor utilizando un Joystick