← Back to blog
Student Projects

Bluetooth car

About This Project

A Bluetooth-controlled car project built with Arduino. The system uses an app to control the vehicle’s movement wirelessly.

Mobile App: Bluetooth RC Controller

Creator

Yash Ghunavat - A 13-year-old aspiring robotics engineer who has completed multiple projects including gripper robots, Bluetooth-controlled lighting systems, and LED displays.

Components Required

  • Arduino UNO
  • DC Motor
  • HC-05 Bluetooth Module
  • AF Motor Driver Shield

Code

//Arduino Bluetooth Controlled Car
//Before uploading the code you have to install the necessary library
//Note - Disconnect the Bluetooth Module before hiting the upload button otherwise you'll get compilation error message.
//AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install
//After downloading the library open Arduino IDE >> go to sketch >> Include Libray >> ADD. ZIP Libray >> Select the downloaded
//ZIP File >> Open it >> Done
//Now You Can Upload the Code without any problem but make sure the bt module isn't connected with Arduino while uploading code

#include <AFMotor.h>

//initial motors pin
AF_DCMotor motor1 ( 1 , MOTOR12_1KHZ ) ;
AF_DCMotor motor2 ( 2 , MOTOR12_1KHZ ) ;
AF_DCMotor motor3 ( 3 , MOTOR34_1KHZ ) ;
AF_DCMotor motor4 ( 4 , MOTOR34_1KHZ ) ;

char command ;

void setup ( ) {
  Serial . begin ( 9600 ) ;   //Set the baud rate to your Bluetooth module.
}

void loop ( ) {
  if ( Serial . available ( ) > 0 ) {
    command = Serial . read ( ) ;
    Stop ( ) ;   //initialize with motors stoped
    //Change pin mode only if new command is different from previous.
    //Serial.println(command);
    switch ( command ) {
      case 'F' : forward ( ) ; break ;
      case 'B' : back ( ) ; break ;
      case 'L' : left ( ) ; break ;
      case 'R' : right ( ) ; break ;
    }
  }
}

void forward ( ) {
  motor1 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor1 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor2 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor2 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor3 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor3 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor4 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor4 . run ( FORWARD ) ;   //rotate the motor clockwise
}

void back ( ) {
  motor1 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor1 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor2 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor2 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor3 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor3 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor4 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor4 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
}

void left ( ) {
  motor1 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor1 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor2 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor2 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor3 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor3 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor4 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor4 . run ( FORWARD ) ;   //rotate the motor clockwise
}

void right ( ) {
  motor1 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor1 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor2 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor2 . run ( FORWARD ) ;   //rotate the motor clockwise
  motor3 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor3 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
  motor4 . setSpeed ( 255 ) ;   //Define maximum velocity
  motor4 . run ( BACKWARD ) ;   //rotate the motor anti-clockwise
}

void Stop ( ) {
  motor1 . setSpeed ( 0 ) ;   //Define minimum velocity
  motor1 . run ( RELEASE ) ;   //stop the motor when release the button
  motor2 . setSpeed ( 0 ) ;   //Define minimum velocity
  motor2 . run ( RELEASE ) ;   //rotate the motor clockwise
  motor3 . setSpeed ( 0 ) ;   //Define minimum velocity
  motor3 . run ( RELEASE ) ;   //stop the motor when release the button
  motor4 . setSpeed ( 0 ) ;   //Define minimum velocity
  motor4 . run ( RELEASE ) ;   //stop the motor when release the button
}
More stories
Book free trial
Buy a kit Become partner Talk to us