Unik Systems Logo
Unik Systems
Back to knowledge base
tutorials

Build a Smartphone-Controlled Bluetooth RC Car Using Arduino & L298N

Control your custom robotic rover using any Android or iOS smartphone over Bluetooth with virtual steering controls, speed throttling, and headlights.

Kunal (Founder & Owner) 2 min read14 Oct 2026
Build a Smartphone-Controlled Bluetooth RC Car Using Arduino & L298N

Build a Smartphone-Controlled Bluetooth RC Car Using Arduino & L298N

Turn an ordinary 2WD or 4WD robotic chassis into an agile remote-controlled rover governed wirelessly by your smartphone accelerometer or virtual joystick!

What you will build: A responsive Bluetooth rover receiving single-byte motion commands over an HC-05/HC-06 serial bridge or BLE module, with smooth differential motor steering.


1. Hardware Checklist

  • 1× Arduino UNO R3
  • 1× L298N Dual Motor Driver Module
  • 1× HC-05 or JDY-31 Bluetooth Module
  • 1× 2WD/4WD Chassis with Gear Motors & Wheels
  • 2× 18650 Li-ion Batteries (7.4V) with Battery Holder
  • Connecting wires & mounting fasteners

2. Bluetooth Serial Bridge Configuration

The HC-05 communicates over standard UART. Because the Arduino UNO's hardware serial pins (D0/D1) are utilized for USB flashing, we use SoftwareSerial on pins D2 and D3:

  HC-05 TX  ──────►  Arduino D2 (Software RX)
  HC-05 RX  ◄──────  Arduino D3 (Software TX via voltage divider: 1kΩ / 2kΩ)
  HC-05 VCC ──────►  5V
  HC-05 GND ──────►  GND

3. Arduino Code

cpp
#include <SoftwareSerial.h> SoftwareSerial BT(2, 3); // RX, TX const int IN1 = 5; const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; void setup() { BT.begin(9600); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } 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 left() { digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } void right() { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } void stop() { digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void loop() { if (BT.available()) { char cmd = BT.read(); switch (cmd) { case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'S': stop(); break; } } }

4. Mobile App Setup

Download any free "Arduino Bluetooth Controller" app from Google Play or the App Store. Pair with HC-05 (passcode: 1234 or 0000) and map directional buttons to 'F', 'B', 'L', 'R', and release to 'S'.

Parts used in this tutorial

Buy them in one click — ships from Pune across India.

4 ITEMS
Approx. total ₹2,476.46 (before GST)Add all to cart
#bluetooth#robotics#arduino
Found this useful? Tell us what you'd like to read next via our RFQ form.