Bluetooth Controlled Robot

Project: Smartphone Controlled Robot

Control your robot wirelessly using Bluetooth and your smartphone!

Components Needed

  • Arduino Uno
  • HC-05 Bluetooth Module
  • L298N Motor Driver
  • 2× DC Motors
  • Chassis and battery

HC-05 Bluetooth Module Wiring

  • VCC: 5V (Arduino)
  • GND: GND (Arduino)
  • TX: Pin 10 (Arduino RX via voltage divider)
  • RX: Pin 11 (Arduino TX)

Arduino Code


#include 

SoftwareSerial bluetooth(10, 11); // RX, TX

// Motor pins
const int enA = 9;
const int in1 = 8;
const int in2 = 7;
const int enB = 3;
const int in3 = 5;
const int in4 = 4;

char command;
const int motorSpeed = 200;

void setup() {
  pinMode(enA, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);

  bluetooth.begin(9600);
  Serial.begin(9600);

  Serial.println("Bluetooth Robot Ready!");
}

void loop() {
  if (bluetooth.available()) {
    command = bluetooth.read();
    Serial.println(command);

    switch(command) {
      case 'F': // Forward
        moveForward();
        break;
      case 'B': // Backward
        moveBackward();
        break;
      case 'L': // Left
        turnLeft();
        break;
      case 'R': // Right
        turnRight();
        break;
      case 'S': // Stop
        stopRobot();
        break;
    }
  }
}

void moveForward() {
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite(enA, motorSpeed);
  analogWrite(enB, motorSpeed);
}

void moveBackward() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  analogWrite(enA, motorSpeed);
  analogWrite(enB, motorSpeed);
}

void turnLeft() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite(enA, motorSpeed);
  analogWrite(enB, motorSpeed);
}

void turnRight() {
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  analogWrite(enA, motorSpeed);
  analogWrite(enB, motorSpeed);
}

void stopRobot() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}
      

Smartphone App Setup

Download "Arduino Bluetooth Controller" app from Play Store:

  1. Install and open the app
  2. Pair with HC-05 (default password: 1234 or 0000)
  3. Connect to "HC-05" device
  4. Configure buttons: F=Forward, B=Backward, L=Left, R=Right, S=Stop
  5. Control your robot!
Challenge: Add speed control using a slider in the app!