Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO and L298N DC Motor Driver Controlled Dual DC Motor System

View and Edit Project In Cirkit DesignerImage of Arduino UNO and L298N DC Motor Driver Controlled Dual DC Motor System

Circuit Documentation

Summary

This circuit is designed to control two DC motors using two L298N DC motor drivers and an Arduino UNO microcontroller. The motors are powered by two 12V batteries, and the Arduino UNO is programmed to control the direction of the motors.

Component List

  1. L298N DC Motor Driver

    • Description: Dual H-Bridge motor driver
    • Pins: OUT1, OUT2, 12V, GND, 5V, OUT3, OUT4, 5V-ENA-JMP-I, 5V-ENA-JMP-O, +5V-J1, +5V-J2, ENA, IN1, IN2, IN3, IN4, ENB
  2. Arduino UNO

    • Description: Microcontroller board based on the ATmega328P
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  3. Battery 12V

    • Description: 12V power supply
    • Pins: +, -
  4. DC Motor

    • Description: Standard DC motor
    • Pins: pin 1, pin 2

Wiring Details

L298N DC Motor Driver (1)

L298N DC Motor Driver (2)

Arduino UNO

Battery 12V (1)

Battery 12V (2)

DC Motor (1)

DC Motor (2)

Code Documentation

int motor1pin1 = 2;
int motor1pin2 = 3;

int motor2pin1 = 4;
int motor2pin2 = 5;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);
  pinMode(motor2pin1, OUTPUT);
  pinMode(motor2pin2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

  // Controlling speed (0 = off and 255 = max speed):
  
  digitalWrite(motor1pin1, HIGH);
  digitalWrite(motor1pin2, LOW);

  digitalWrite(motor2pin1, HIGH);
  digitalWrite(motor2pin2, LOW);
  delay(3000);

  digitalWrite(motor1pin1, LOW);
  digitalWrite(motor1pin2, HIGH);

  digitalWrite(motor2pin1, LOW);
  digitalWrite(motor2pin2, HIGH);
  delay(3000);
}

Code Explanation