Arduino-Controlled DC Motor Driver for Multi-Directional Movement
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is designed to control multiple DC motors using an Arduino UNO and L298N DC motor drivers. The L298N motor drivers allow for bidirectional control of the motors, enabling them to run forwards and backwards. The Arduino UNO serves as the central controller, sending signals to the motor drivers to manage the operation of the motors.
Component List
L298N DC Motor Driver
- Description: A dual H-bridge motor driver that can control the direction and speed of two DC motors.
- 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
DC Motor
- Description: A standard DC motor used for driving mechanical loads.
- Pins: pin 1, pin 2
Arduino UNO
- Description: A microcontroller board based on the ATmega328P, used for programming and controlling the circuit.
- 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
Wiring Details
L298N DC Motor Driver (Instance 1)
- OUT1 connected to pin 2 of DC Motor (Instance 1)
- OUT2 connected to pin 1 of DC Motor (Instance 1)
- ENA connected to D12 of Arduino UNO
- 12V connected to power supply
- GND connected to GND of Arduino UNO
- 5V connected to 5V of Arduino UNO
- OUT3 connected to pin 2 of DC Motor (Instance 2)
- OUT4 connected to pin 1 of DC Motor (Instance 2)
L298N DC Motor Driver (Instance 2)
- OUT1 connected to pin 2 of DC Motor (Instance 3)
- OUT2 connected to pin 1 of DC Motor (Instance 3)
- ENA connected to D9 of Arduino UNO
- 12V connected to power supply
- GND connected to GND of Arduino UNO
- 5V connected to 5V of Arduino UNO
- OUT3 connected to pin 2 of DC Motor (Instance 4)
- OUT4 connected to pin 1 of DC Motor (Instance 4)
Arduino UNO
- D2 connected to IN1 of L298N DC Motor Driver (Instance 1)
- D3 connected to IN2 of L298N DC Motor Driver (Instance 1)
- D4 connected to IN3 of L298N DC Motor Driver (Instance 1)
- D5 connected to IN4 of L298N DC Motor Driver (Instance 1)
- D10 connected to ENB of L298N DC Motor Driver (Instance 1)
- D6 connected to IN1 of L298N DC Motor Driver (Instance 2)
- D7 connected to IN2 of L298N DC Motor Driver (Instance 2)
- D8 connected to IN3 of L298N DC Motor Driver (Instance 2)
- D11 connected to IN4 of L298N DC Motor Driver (Instance 2)
- D12 connected to ENA of L298N DC Motor Driver (Instance 2)
- 5V connected to 5V of L298N DC Motor Driver (Instance 1 and 2)
- GND connected to GND of L298N DC Motor Driver (Instance 1 and 2)
Documented Code
void setup() {
// Set control pins for the first driver as outputs
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
// Set control pins for the second driver as outputs
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// Run the first motor forward
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
analogWrite(9, 255); // Motor speed
// Run the second motor backward
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
analogWrite(10, 255); // Motor speed
// Run the third motor forward
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
analogWrite(12, 255); // Motor speed
// Run the fourth motor backward
digitalWrite(8, LOW);
digitalWrite(11, HIGH);
analogWrite(13, 255); // Motor speed
delay(2000); // Run for 2 seconds
// Stop the motors
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
analogWrite(9, 0);
analogWrite(10, 0);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(11, LOW);
analogWrite(12, 0);
analogWrite(13, 0);
delay(2000);
}
This documentation provides a comprehensive overview of the circuit, detailing the components used, their connections, and the code that controls the operation of the motors.