Codey OnlineArduino & ESP32 component library › L298N Motor Driver Board
L298N Motor Driver Board
Actuators

L298N Motor Driver Board

The L298N Motor Driver Board is a dual H-bridge motor driver that controls two DC motors (direction and speed). Use IN1–IN4 for motor direction and ENA/ENB for enabling PWM speed control; connect the motors to OUT1–OUT4. The logic side is typically powered from a 5V pin, while the motor power comes from a higher supply such as 12V (shared ground required).

Width: 40.9 mm

Pinout — L298N Motor Driver Board

Pin Signal Description
IN1 digital Logic direction input for motor A H-bridge.
GND ground Common ground for motor supply and logic control signals.
IN2 digital Logic direction input for motor A H-bridge.
IN3 digital Logic direction input for motor B H-bridge.
IN4 digital Logic direction input for motor B H-bridge.
OUT1 power Motor A output terminal 1 — connect one lead of the left motor.
OUT2 power Motor A output terminal 2 — connect the other lead of the left motor.
ENA enable Enable/PWM input for motor A speed control; high enables OUT1/OUT2.
ENB enable Enable/PWM input for motor B speed control; high enables OUT3/OUT4.
OUT3 power Motor B output terminal 1 — connect one lead of the right motor.
OUT4 power Motor B output terminal 2 — connect the other lead of the right motor.
12V power-high Motor supply input for the L298N power stage, typically 7–12 V.
VCC power 5 V logic supply/output depending on regulator jumper configuration.
12V power-high Motor supply input for the L298N power stage, typically 7–12 V.

Example wiring diagram — L298N Motor Driver Board

From To Wire
board:D5 x1:ENA green
board:D8 x1:IN1 blue
board:D9 x1:IN2 yellow
board:D10 x1:IN3 purple
board:D11 x1:IN4 cyan
board:GND x1:GND black
board:5V x1:VCC red

Example Arduino code — L298N Motor Driver Board

This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.

// Canonical example for the L298N Left Motors module
// Drives the two motor channels forward, reverse, and stop using PWM on ENA.

const int ENA = 5;   // PWM speed control
const int IN1 = 8;   // Motor A direction
const int IN2 = 9;   // Motor A direction
const int IN3 = 10;  // Motor B direction
const int IN4 = 11;  // Motor B direction

void stopMotors() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, 0);
}

void forward(int speedValue) {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, speedValue);
}

void reverse(int speedValue) {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  analogWrite(ENA, speedValue);
}

void setup() {
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);

  Serial.begin(9600);
  Serial.println("L298N left motors example starting...");
  stopMotors();
}

void loop() {
  Serial.println("Forward");
  forward(180);
  delay(2000);

  Serial.println("Stop");
  stopMotors();
  delay(1000);

  Serial.println("Reverse");
  reverse(180);
  delay(2000);

  Serial.println("Stop");
  stopMotors();
  delay(1000);
}

Related components

A4988 Stepper Driver

A4988 Stepper Driver

DRV8825 Driver Board

DRV8825 Driver Board

Left DC Motor

Left DC Motor

NEMA17 Stepper Motor

NEMA17 Stepper Motor

Build your Arduino or ESP32 project with AI

Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.

Start for free