

This circuit is designed to control a set of DC motors using an Arduino Uno R3 microcontroller and an L298N DC motor driver. The circuit includes a Bluetooth module (HC-05) for wireless communication and an LED indicator. The Arduino Uno R3 is programmed to interpret serial commands to control the motion of the motors (forward, reverse, left, right, stop) and to toggle the LED state. The motors are powered by a 4 x AAA battery mount, and the Arduino is responsible for driving the motors through the L298N motor driver.
3.3V connected to the anode of the red LED5V connected to the VCC of the HC-05 Bluetooth moduleGND connected to the ground of the battery mount, L298N motor driver, and HC-05 Bluetooth moduleVIN connected to the 5V input of the L298N motor driver13, 12, 11, and 10 connected to the IN1, IN2, IN3, and IN4 of the L298N motor driver respectively9 connected to the cathode of the red LED1 and 0 (TX/RX) connected to the RXD and TXD of the HC-05 Bluetooth moduleOUT1 and OUT2 connected to the DC motors (motor A)OUT3 and OUT4 connected to the DC motors (motor B)12V connected to the positive terminal of the battery mountGND connected to the ground of the Arduino Uno R3OUT pin on the L298N motor driver and the other pin to another OUT pin for the opposite directionVCC connected to the 5V of the Arduino Uno R3GND connected to the GND of the Arduino Uno R3TXD connected to the RX (pin 0) of the Arduino Uno R3RXD connected to the TX (pin 1) of the Arduino Uno R3Anode connected to the 3.3V of the Arduino Uno R3Cathode connected to the digital pin 9 of the Arduino Uno R3+ connected to the 12V of the L298N motor driver- connected to the GND of the Arduino Uno R3char 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.