Bluetooth Controlled Arduino Robot Car – DIY STEM Project
Introduction
The Bluetooth Controlled Arduino Robot Car is a popular robotics project for students. In this project, a robot car is controlled wirelessly using a smartphone via Bluetooth communication.
The system uses an Arduino board, a Bluetooth module (HC-05), and a motor driver module (L298N/L293D) to control DC motors attached to the robot chassis. The mobile phone sends commands through Bluetooth, and the Arduino interprets these commands to move the robot forward, backward, left, or right.
This project helps students learn:
- Arduino programming
- Bluetooth communication
- Motor control
- Robotics basics
🛠️ Components Used
Typical components required for a Bluetooth robot car include:
- Arduino Uno / Arduino Nano
- HC-05 Bluetooth Module
- L298N Motor Driver Module
- DC Gear Motors (2 or 4)
- Robot Car Chassis
- Wheels
- Battery (7.4V / 9V / Li-ion battery pack)
- Jumper wires
- Switch
- Smartphone with Bluetooth control app
These components allow the Arduino to receive commands from a mobile device and control the motors through the motor driver module.
Pin Connection
HC-05 Bluetooth Module to Arduino
| HC-05 Pin | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TX | RX (Pin 0) |
| RX | TX (Pin 1) |
Motor Driver L298N to Arduino
| L298N Pin | Arduino Pin |
|---|---|
| IN1 | D8 |
| IN2 | D9 |
| IN3 | D10 |
| IN4 | D11 |
| ENA | 5V or PWM |
| ENB | 5V or PWM |
Motors
- Motor A → OUT1 & OUT2
- Motor B → OUT3 & OUT4
Arduino Code
char command;
int motor1Pin1 = 8;
int motor1Pin2 = 9;
int motor2Pin1 = 10;
int motor2Pin2 = 11;
void setup() {
Serial.begin(9600);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
if (Serial.available()) {
command = Serial.read();
if (command == ‘F’) { // Forward
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
else if (command == ‘B’) { // Backward
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}
else if (command == ‘L’) { // Left
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
else if (command == ‘R’) { // Right
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}
else if (command == ‘S’) { // Stop
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
}
}
Mobile App
Install a Bluetooth RC Controller App from the Play Store.
Steps:
- Turn ON robot power
- Enable Bluetooth on phone
- Pair with HC-05(password usually 1234)
- Use the app buttons to control the robot
Working Principle
- Smartphone sends commands through Bluetooth.
- HC-05 module receives the signal.
- Arduino reads the command via serial communication.
- Arduino controls the motor driver.
- Motor driver rotates motors accordingly.
















