Circuit Documentation
Summary
This circuit is designed to control a set of DC motors using an Arduino Uno R3 microcontroller and an L298N DC motor driver. The system also includes an HC-05 Bluetooth module for wireless communication and a 4 x AAA battery mount to provide power. The Arduino Uno R3 is programmed to interpret serial commands and control the motors accordingly, allowing for forward, reverse, left, and right movements, as well as stopping the motors and controlling an LED.
Component List
Arduino Uno R3
- Microcontroller board based on the ATmega328P
- Features digital I/O pins, analog input pins, and various power options
- Equipped with USB connection for programming and serial communication
L298N DC Motor Driver
- Module for controlling up to two DC motors
- Provides high current and high voltage capabilities
- Includes enable and input pins for controlling motor direction and speed
DC Motors (4x)
- Electric motors that convert electrical energy into mechanical rotation
- Each motor has two connection pins for power and control
HC-05 Bluetooth Module
- Wireless communication module for Bluetooth connectivity
- Allows for serial communication over Bluetooth
4 x AAA Battery Mount
- Power source for the circuit
- Holds four AAA batteries to provide a voltage supply
Wiring Details
Arduino Uno R3
5Vconnected to HC-05VCCGNDconnected to L298NGND, HC-05GND, and 4 x AAA Battery Mount-VINconnected to L298N5V- Digital pins
13,12,11,10connected to L298NIN1,IN2,IN3,IN4respectively - Pins
1and0connected to HC-05TXDandRXDfor serial communication
L298N DC Motor Driver
GNDconnected to Arduino Uno R3GNDand 4 x AAA Battery Mount-5Vconnected to Arduino Uno R3VININ1,IN2,IN3,IN4connected to Arduino Uno R3 digital pins13,12,11,10OUT1,OUT2connected to two DC MotorsOUT3,OUT4connected to the other two DC Motors12Vconnected to 4 x AAA Battery Mount+
DC Motors
- Each motor has two pins, one connected to either
OUT1,OUT2,OUT3, orOUT4on the L298N
HC-05 Bluetooth Module
VCCconnected to Arduino Uno R35VGNDconnected to Arduino Uno R3GNDTXDconnected to Arduino Uno R3 pin1RXDconnected to Arduino Uno R3 pin0
4 x AAA Battery Mount
+connected to L298N12V-connected to Arduino Uno R3GNDand L298NGND
Documented Code
char t;
void setup() {
pinMode(13, OUTPUT); // left motors forward
pinMode(12, OUTPUT); // left motors reverse
pinMode(11, OUTPUT); // right motors forward
pinMode(10, OUTPUT); // right motors reverse
pinMode(9, OUTPUT); // LED
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
t = Serial.read();
Serial.println(t);
}
if (t == 'F') { // move forward (all motors rotate in forward direction)
digitalWrite(13, HIGH);
digitalWrite(11, HIGH);
} else if (t == 'B') { // move reverse (all motors rotate in reverse direction)
digitalWrite(12, HIGH);
digitalWrite(10, HIGH);
} else if (t == 'L') { // turn right (left side motors rotate in forward direction, right side motors don't rotate)
digitalWrite(11, HIGH);
} else if (t == 'R') { // turn left (right side motors rotate in forward direction, left side motors don't rotate)
digitalWrite(13, HIGH);
} else if (t == 'W') { // turn LED on
digitalWrite(9, HIGH);
} else if (t == 'w') { // turn LED off
digitalWrite(9, LOW);
} else if (t == 'S') { // STOP (all motors stop)
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
}
delay(100);
}
This code is designed to run on the Arduino Uno R3. It sets up the necessary pins as outputs and initializes serial communication. The loop function reads a character from the serial port and controls the motors and LED based on the received command.
