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
}