Arduino UNO Bluetooth Controlled 4WD Robot Car Using L298N Motor Driver

Arduino UNO Bluetooth 4WD Robot Car | MakeMindz Tutorial
⚙️ Robotics ✅ Beginner 📶 Bluetooth

Arduino UNO Bluetooth Controlled 4WD Robot Car

Build a wireless smartphone-controlled robot car using Arduino UNO, HC-05 Bluetooth, and L298N dual H-bridge motor driver — complete with circuit diagram, full code, and simulation link.

30–60 min 💰 ~₹600–₹900 🎓 Beginner 📅 Feb 2026
01

Project Overview

The Arduino UNO Bluetooth Controlled 4WD Robot Car is a beginner-friendly project where a smartphone sends single-character commands via Bluetooth to the Arduino, which drives four DC motors through the L298N H-bridge motor driver — enabling forward, backward, left, right and stop.

ℹ️
How it worksPhone sends F/B/L/R/S → HC-05 passes it to Arduino via UART → Arduino toggles L298N IN1–IN4 pins to spin motors.
✅ What You'll Learn
  • UART / Serial communication
  • H-bridge motor direction control
  • Bluetooth wireless pairing
  • Multi-motor synchronisation
⚠️ Prerequisites
  • Arduino IDE installed
  • Basic wiring knowledge
  • Android phone (Bluetooth)
  • USB-A to USB-B cable

02

Components Needed

🧠
Arduino UNO R3
× 1 — Microcontroller
L298N Motor Driver
× 1 — Dual H-Bridge
📶
HC-05 Bluetooth
× 1 — Serial BT Module
🔧
DC Geared Motors
× 4 — TT type, 3–6V
🚗
4WD Robot Chassis
× 1 — with wheels
🔋
Battery Pack
× 1 — 6V / 4×AA
💡
LED + 220Ω Resistor
× 1 — Status light
🔌
Jumper Wires
M-F and M-M set

03

Pin Connections

Arduino PinConnects ToDescription
D13L298N IN1Left channel — Forward
D12L298N IN2Left channel — Reverse
D11L298N IN3Right channel — Forward
D10L298N IN4Right channel — Reverse
D9LED Anode (via 220Ω)Status indicator
D0 RXHC-05 TXBluetooth receive
D1 TXHC-05 RX (via divider)Bluetooth transmit
5VHC-05 VCCModule power
GNDHC-05 GND, L298N GND, Battery −Common ground

04

Circuit Diagram

🔌 Wiring Schematic — Arduino 4WD Bluetooth Robot Car SVG
Arduino UNO 4WD Bluetooth Robot — Circuit Diagram makemindz.com ARDUINO UNO D13 ● D12 ● D11 ● D10 ● D9 ● 5V ● GND ● TX/RX● L298N Motor Driver IN1 IN2 IN3 IN4 OUT-A OUT-B VCC GND HC-05 Bluetooth Module VCC GND TX RX LED + 220Ω Resistor Anode BATTERY 6V AAA Pack + Left Motors FL+BL Right Motors FR+BR Signal Power Ground UART LED Motor Out
⚠️
Voltage Divider on HC-05 RXThe HC-05 RX pin is 3.3V tolerant. Use a 1kΩ + 2kΩ resistor divider between Arduino TX (5V) and HC-05 RX to protect the module.

05

Step-by-Step Build Guide

01
Gather All Components
Collect everything from the components list above. Use a dedicated 6V battery pack for the motors — don't power them from Arduino's 5V pin, as motors draw too much current.
02
Assemble the 4WD Chassis
Mount all 4 DC geared motors into the chassis slots and secure with screws. Attach rubber wheels. Left motors (FL + BL) share one L298N output channel; right motors (FR + BR) share the other.
💡 If the car veers to one side, swap the two motor wires on the affected channel.
03
Wire the L298N Motor Driver
  • IN1 → Arduino D13
  • IN2 → Arduino D12
  • IN3 → Arduino D11
  • IN4 → Arduino D10
  • OUT-A → Left motors (FL + BL)
  • OUT-B → Right motors (FR + BR)
  • VCC → Battery pack positive (+)
  • GND → Battery (−) and Arduino GND
⚠️ Keep ENA/ENB jumpers ON for full speed, or wire to D5/D6 for PWM speed control.
04
Connect HC-05 Bluetooth Module
  • VCC → Arduino 5V
  • GND → Arduino GND
  • TX → Arduino RX (D0)
  • RX → Arduino TX (D1) via 1kΩ/2kΩ voltage divider
💡 Disconnect HC-05 TX/RX before uploading code — it shares the hardware serial port and will block USB upload.
05
Wire the LED Status Indicator
Connect LED anode (+) through a 220Ω resistor to Arduino D9. Connect cathode (−) to GND. Toggle it via commands 'O' (on) and 'f' (off).
06
Upload the Arduino Sketch
  • Open Arduino IDE, paste the code from Section 06
  • Tools → Board → Arduino UNO
  • Tools → Port → select your COM port
  • Disconnect HC-05 TX/RX wires temporarily
  • Click Upload (→) — wait for "Done uploading"
  • Reconnect HC-05 wires after upload
07
Pair & Test with Your Phone
  • Power on the robot (battery + USB/Vin)
  • Android: Settings → Bluetooth → Scan
  • Pair with HC-05 — default PIN: 1234 or 0000
  • Install Serial Bluetooth Terminal app
  • Connect to HC-05 and send: F, B, L, R, S
✅ HC-05 LED blinks fast before pairing, then once every 2 seconds when connected.

06

Arduino Sketch

bluetooth_4wd_robot.ino
/*
 * Arduino UNO Bluetooth Controlled 4WD Robot Car
 * HC-05 Bluetooth + L298N Motor Driver
 * MakeMindz.com
 *
 * Commands:  F = Forward   B = Backward
 *            L = Left      R = Right
 *            S = Stop      O = LED ON   f = LED OFF
 */

// Pin Definitions
const int motorPin1 = 13;  // IN1 — Left Forward
const int motorPin2 = 12;  // IN2 — Left Reverse
const int motorPin3 = 11;  // IN3 — Right Forward
const int motorPin4 = 10;  // IN4 — Right Reverse
const int ledPin    = 9;   // Status LED

void setup() {
  Serial.begin(9600);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(ledPin,    OUTPUT);
  stopMotors();
  digitalWrite(ledPin, LOW);
}

void loop() {
  if (Serial.available() > 0) {
    char cmd = Serial.read();
    switch (cmd) {
      case 'F': moveForward();  break;
      case 'B': moveBackward(); break;
      case 'L': turnLeft();    break;
      case 'R': turnRight();   break;
      case 'S': stopMotors();  break;
      case 'O': digitalWrite(ledPin, HIGH); break;
      case 'f': digitalWrite(ledPin, LOW);  break;
      default: break;
    }
  }
}

void moveForward() {
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
}

void moveBackward() {
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
}

void turnLeft() {
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH); // Left backward
  digitalWrite(motorPin3, HIGH); // Right forward
  digitalWrite(motorPin4, LOW);
}

void turnRight() {
  digitalWrite(motorPin1, HIGH); // Left forward
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH); // Right backward
}

void stopMotors() {
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
}

07

Bluetooth Commands

Send these single characters from any Bluetooth terminal app. Set the newline mode to None so only the character is transmitted.

CommandActionLeft MotorsRight Motors
FForward↑ Forward↑ Forward
BBackward↓ Reverse↓ Reverse
LTurn Left↓ Reverse↑ Forward
RTurn Right↑ Forward↓ Reverse
SStop■ Off■ Off
OLED ONStatus LED turns ON
fLED OFFStatus LED turns OFF

08

Concepts Demonstrated

📡
UART Serial Comm

HC-05 sends characters to Arduino's hardware serial at 9600 baud.

🔀
H-Bridge Control

L298N drives motors bidirectionally using IN1–IN4 logic inputs.

⚙️
DC Motor Direction

Reversing HIGH/LOW on IN pins reverses motor rotation direction.

📶
Bluetooth SPP

HC-05 presents as a virtual COM port via Serial Port Profile.

🔄
Multi-Motor Sync

Tank-style steering via two independent L298N motor channels.

🛠️
Modular Code

Motor actions separated into helper functions for clean, extensible code.


09

Run the Simulation

🔬 Test before you build!

Simulate this exact circuit in CirkitDesigner — wire components virtually, run the code, and verify motor logic before soldering anything.

▶ Open Simulation →
TipIn CirkitDesigner's Serial Monitor, send F, B, L, R, S and watch the IN pin states change in real time — no hardware needed.

10

Future Upgrades

Once you've built the base robot, these additions can turn it into an advanced autonomous platform:

HC-SR04 ultrasonic obstacle avoidance
IR line-following sensor array
ESP8266 / ESP32 WiFi + IoT control
Custom Android Bluetooth controller app
FPV WiFi camera module
PWM speed control via ENA/ENB pins
18650 Li-ion rechargeable battery pack
Autonomous navigation algorithm

Related Projects

MakeMindz.com — Electronics, Robotics & IoT Tutorials

© 2026 MakeMindz · Arduino UNO Bluetooth 4WD Robot Car | HC-05 + L298N

Comments

try for free