Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

Arduino Nano HC-05: Bluetooth Robot Car Control | ShillehTek

May 18, 2026 30 views

Arduino Nano HC-05: Bluetooth Robot Car Control | ShillehTek
Project

Build an Arduino Nano robot car using an HC-05 Bluetooth module and L298N motor driver for phone control, including wiring and code, from ShillehTek.

2 hr Beginner / Intermediate5 parts

Project Overview

Arduino Nano + HC-05 + L298N Bluetooth robot car: Build a Bluetooth-controlled 2WD robot where the HC-05 receives commands from your phone, the Arduino Nano decodes them, and the L298N drives two DC motors for forward, reverse, left, and right control.

  • Time: ~2 hours
  • Skill level: Beginner / Intermediate
  • What you will build: A 2-wheel-drive robot car controlled from an Android phone over Bluetooth Classic.
Arduino Nano Bluetooth robot car overview showing smartphone controlling HC-05, Arduino, L298N, and DC motors
Smartphone to HC-05 to Arduino to L298N to motors.

Parts List

From ShillehTek

External

  • 2 x 6V DC gear motors + wheels
  • 2WD chassis (acrylic or 3D-printed)
  • 4x AA battery pack or 7.4V LiPo
  • Android phone + "Bluetooth RC Controller" app

Note: HC-05 is Bluetooth Classic, Android only. For iPhone, swap in our HM-10 BLE module instead.

Step-by-Step Guide

Step 1 - Assemble the Chassis

Goal: Build the physical base so the motors, wheels, and electronics are securely mounted.

What to do: Mount both DC gear motors to the chassis, attach the wheels, and secure a top platform (or standoffs) for the Arduino Nano, L298N, and HC-05.

2WD robot car chassis assembled with DC gear motors, wheels, and mounting space for Arduino Nano, L298N, and HC-05
Mount the motors, attach wheels, and secure the Arduino + L298N + HC-05 platform on top.

Expected result: A stable rolling chassis with space to mount the controller, motor driver, and Bluetooth module.

Step 2 - Wire the L298N Motor Driver

Goal: Connect the Arduino Nano control pins to the L298N so it can drive both motors (including PWM speed control).

What to do: Wire the motor outputs from the L298N to the two DC motors, then connect the control pins as shown in the diagram. Use PWM-capable pins for ENA and ENB.

Arduino Nano wired to L298N motor driver and two DC motors with ENA on D5, ENB on D10, and direction pins on D6 to D9
ENA to D5 (PWM), IN1 to D6, IN2 to D7. ENB to D10 (PWM), IN3 to D8, IN4 to D9.

Expected result: The L298N is fully connected to both motors and ready to respond to Arduino direction and PWM signals.

Step 3 - Wire the HC-05 Bluetooth Module

Goal: Connect Bluetooth Serial so the Arduino can receive single-character drive commands from your phone.

What to do: Connect HC-05 TX to Arduino RX (D0), and HC-05 RX to Arduino TX (D1) through a voltage divider as shown. Make sure power and ground are common across the whole system.

HC-05 Bluetooth module wired to Arduino Nano serial pins with TX to RX crossing and a voltage divider on the HC-05 RX line
HC-05 TX to Arduino RX (D0), HC-05 RX to Arduino TX (D1) via a voltage divider.

Expected result: The Arduino can read Bluetooth data from the HC-05 over the hardware serial pins.

Step 4 - Upload the Arduino Sketch

Goal: Program the Arduino Nano to translate Bluetooth characters into motor movements using the L298N.

What to do: Open the Arduino IDE, select your Nano board and port, then upload the sketch below. It listens at 9600 baud and supports F, B, L, R, and S commands.

Code:

const int IN1=6,IN2=7,IN3=8,IN4=9,ENA=5,ENB=10;
void setup() { Serial.begin(9600);
  for (int p : {IN1,IN2,IN3,IN4,ENA,ENB}) pinMode(p,OUTPUT);
  analogWrite(ENA,200); analogWrite(ENB,200);
}
void stop(){ digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW); }
void fwd(){ digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW); }
void rev(){ 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 loop() {
  if (!Serial.available()) return;
  char c = Serial.read();
  if (c=='F') fwd(); else if (c=='B') rev();
  else if (c=='L') left(); else if (c=='R') right();
  else if (c=='S') stop();
}

Expected result: After uploading, the Arduino is ready to drive the motors as soon as it receives characters over Bluetooth Serial.

Step 5 - Pair Your Phone and Drive

Goal: Connect your Android phone to the HC-05 and control the robot car.

What to do: Install the "Bluetooth RC Controller" app on Android, pair your phone with the HC-05 (PIN 1234), then use the on-screen buttons to send F/B/L/R/S commands.

Android Bluetooth RC Controller app screen used to send F, B, L, and R commands to an HC-05 connected to an Arduino robot car
Install "Bluetooth RC Controller" on Android, pair with HC-05 (PIN 1234), then tap F/B/L/R buttons.
Completed Arduino Nano robot car build with HC-05 and L298N motor driver running on the floor
Drive it across the floor; your phone is the remote.

Expected result: The car responds to button presses by moving forward, backward, left, right, and stopping.

Step 6 - Where to Take It Next

Goal: Extend the same Bluetooth-controlled base into more advanced robotics projects.

What to do: Try one of the upgrades below once the basic drive control is working reliably.

  • Add HC-SR04 ultrasonic + obstacle-avoidance mode
  • Swap HC-05 for ESP32 + custom phone app over Wi-Fi
  • Add an ESP32-CAM for video streaming + FPV control
  • Throttle PWM via slider in the app for variable speed

Expected result: You have a clear path for turning a basic RC car into a sensor-based or connected robotics platform.

Conclusion

This project turned an Arduino Nano, HC-05 Bluetooth module, and L298N motor driver into a phone-controlled robot car that can drive forward, reverse, and steer on command. Once you can reliably control motors over Bluetooth, many other RC robotics builds become much easier.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.