🎯 Project Overview

In this project, we will build a Bluetooth-controlled robot car using an Arduino UNO-compatible board, L298N motor driver, HC-05 Bluetooth module, and 4 BO motors with wheels.
This is a great beginner project to learn about Arduino, motor drivers, Bluetooth communication, and robotics.

You will control the robot from your smartphone using a Bluetooth app.

🛠️ Components Required

Arduino UNO-compatible board

L298N Motor Driver Module

4 × BO Motors with Wheels

Robot Chassis (3D Printed or ready-made)

HC-05 Bluetooth Module

Battery Holder + 1200mAh Battery

10 × Female-to-Female Jumper Wires

Screws, nuts, and accessories for mounting

🛠️ Parts Needed

Arduino Uno (or Nano)

L298N motor driver (1 or 2 depending on current)

4 × DC motors with wheels

HC-05 Bluetooth module

HC-SR04 ultrasonic sensor

Battery pack (7.4–12 V Li-ion recommended)

Jumper wires + switch

Pin Connections

Component Arduino Pin Notes
HC-05 TX D2 Connect via SoftwareSerial
HC-05 RX D3 Use a voltage divider (5V → 3.3V)
L298N ENA D5 (PWM) Speed control – Left motors
L298N IN1 D7 Left motor direction
L298N IN2 D8 Left motor direction
L298N ENB D6 (PWM) Speed control – Right motors
L298N IN3 D9 Right motor direction
L298N IN4 D10 Right motor direction
Motors OUT1/OUT2 → Left
OUT3/OUT4 → Right
Connected to L298N outputs
Battery + L298N +12V Powers motors
Battery – L298N GND + Arduino GND Common ground
Arduino 5V & GND To L298N & HC-05 Shared supply

Circuit Diagram

Arduino Code

#include <SoftwareSerial.h>

// ———- Bluetooth ———-
SoftwareSerial BT(2, 3); // D2 = RX, D3 = TX for Bluetooth HC-05

// ———- Motor Driver Pins ———-
#define ENA 5 // Left motor speed (PWM)
#define IN1 7
#define IN2 8
#define ENB 6 // Right motor speed (PWM)
#define IN3 9
#define IN4 10

// ———- Variables ———-
int speedCar = 180; // Speed range: 0 – 255

// ———- Setup ———-
void setup() {
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);

analogWrite(ENA, speedCar);
analogWrite(ENB, speedCar);

BT.begin(9600); // Default baud rate for HC-05
Serial.begin(9600); // Debugging
Serial.println(“Bluetooth Robot Ready!“);
}

// ———- Main Loop ———-
void loop() {
if (BT.available()) {
char command = BT.read();
Serial.println(command);

switch (command) {
caseF‘: forward(); break;
caseB‘: backward(); break;
caseL‘: leftTurn(); break;
caseR‘: rightTurn(); break;
caseS‘: stopCar(); break;

case0‘ … ‘9‘: // Speed control
speedCar = map(command – ‘0’, 0, 9, 80, 255);
analogWrite(ENA, speedCar);
analogWrite(ENB, speedCar);
Serial.print(“Speed set to: “);
Serial.println(speedCar);
break;
}
}
}

// ———- Movement Functions ———-
void forward() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}

void backward() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}

void leftTurn() {
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}

void rightTurn() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}

void stopCar() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}

📱 How to Control from Mobile

Install “Arduino Bluetooth Controller” or any Bluetooth terminal app.

Pair your phone with HC-05 (PIN = 1234 or 0000).

Send commands from your phone:

CommandAction
FMove Forward
BMove Backward
LTurn Left
RTurn Right
SStop
0–9Adjust Speed

Teamwork Idea

Team A: Assemble chassis + motors

Team B: Do wiring & connections

Team C: Upload code + test via Bluetooth

Conclusion

Now you have built a Bluetooth-controlled robot car 🚗💨 using Arduino!
This simple but exciting project teaches you motor control, Bluetooth communication, and Arduino coding — the foundation of robotics.