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.

  1. 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
  2. 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
  3. 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

  1. 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.
  2. Configuración inicial (setup): Se configuran los pines como salidas.
  3. 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.

(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*