Tutorial módulo L298N con un Arduino
Este módulo es ideal para controlar motores de corriente continua (DC) o motores paso a paso (steppers) desde tu Arduino.
Materiales necesarios
- Arduino (UNO, Mega, Nano, etc.)
- Módulo controlador de motores L298N
- Motor(es) de corriente continua (DC) o motor paso a paso
- Fuente de alimentación externa (batería o adaptador de corriente, dependiendo de los requisitos de tus motores)
- Cables de conexión (jumper wires)
- Protoboard (opcional)
Conexiones
Para este tutorial, asumiremos que estás controlando dos motores DC.
- L298N Módulo a Arduino:
- IN1 a pin digital 9 del Arduino
- IN2 a pin digital 8 del Arduino
- IN3 a pin digital 7 del Arduino
- IN4 a pin digital 6 del Arduino
- EN A a pin PWM 10 del Arduino (puente cerrado si no se usa PWM)
- EN B a pin PWM 5 del Arduino (puente cerrado si no se usa PWM)
- GND a GND del Arduino
- L298N Módulo a Motores:
- OUT1 a uno de los terminales del Motor A
- OUT2 al otro terminal del Motor A
- OUT3 a uno de los terminales del Motor B
- OUT4 al otro terminal del Motor B
- Alimentación del Módulo L298N:
- Conecta la fuente de alimentación positiva al terminal 12V del módulo L298N
- Conecta la fuente de alimentación negativa al terminal GND del módulo L298N
- Asegúrate de remover el puente 5V-EN si usas una fuente de alimentación externa que supera los 12V
Código fuente:
#define ENA 10
#define IN1 9
#define IN2 8
#define ENB 5
#define IN3 7
#define IN4 6
void setup() {
// Configura los pines como salida
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// Motor A hacia adelante
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, 255); // Velocidad máxima
// Motor B hacia adelante
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(ENB, 255); // Velocidad máxima
delay(2000); // Corre hacia adelante por 2 segundos
// Detén ambos motores
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1000); // Espera 1 segundo
// Motor A hacia atrás
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 255); // Velocidad máxima
// Motor B hacia atrás
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(ENB, 255); // Velocidad máxima
delay(2000); // Corre hacia atrás por 2 segundos
// Detén ambos motores
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1000); // Espera 1 segundo
}
Explicación del código
- Definición de pines: Se definen los pines del Arduino que estarán conectados a ENA, IN1, IN2, ENB, IN3 y IN4 del módulo L298N.
- Configuración inicial (setup): Se configuran los pines como salidas.
- Bucle principal (loop):
- Se configuran los motores para que giren hacia adelante utilizando IN1 y IN2 para el Motor A, e IN3 y IN4 para el Motor B.
- Se ajusta la velocidad de los motores utilizando analogWrite en ENA y ENB.
- Se detienen los motores configurando IN1, IN2, IN3 y IN4 en LOW.
- Se invierte la dirección de los motores para que giren hacia atrás.
- Se repite el ciclo con delays para observar el comportamiento.
Pública tu duda o comentario
Resuelve tus dudas con la comunidad.
(0) Comentarios
No registra comentarios, se el primero en comentar.
Publicar