Smartphone Controlled Car using Arduino and Bluetooth Module (HC-05)
SMARTPHONE CONTROLLED CAR:
Smartphone controlled car is an Arduino based bot, which can
be made to work with our smartphones having respective application (i.e.
Arduino RC) installed in it. This car receives commands from our smartphones
with the help of Bluetooth. Nowadays, we are connecting our smartphones with
various electronic devices for the purpose of synchronization. By implementing
this idea, we can also able to control the speed, direction, horn, music
system, lights, opening and closing operations of the doors. If this prototype
is made real, we can do various operations like controlling the car, from the
parking zone by standing outside the car.
CIRCUIT AND WORKING:
The circuit
diagram for this bot is shown in the figure 2. The smaller chip is an Atmega8U2
in the Arduino board converts USB input
to serial. The ATmega328 on the Uno comes with a bootloader. This allows us to
upload the program to it without the use of an external hardware programmer (Refer
to figure 1). This chip can be removable. The Uno board can be powered via the
USB connection or with an external power supply using batteries or AC/ DC
adapters in Vin. From this Vin, we can get the output as regulated 5V and 3.3V
and this can be used for powering the Bluetooth module HC-05.
These 28
pins in the ATmega328 on the Arduino UNO can be as an input or output. The Serial
pin(refer figure 1) 0 (RX) and 1 (TX) is Used to receive (RX) and transmit (TX)
serial data from Bluetooth module HC-05. The pins 4, 5, 6 and 7 are connected
to the H-BRIDGE (refer figure 2). Out of these four pins, Pins 5 and 6 provides
8-bit PWM output with the analogWrite() function. The pins 2 and 3 are also
used as external interrupts and this pins can also be used as inputs and
outputs(i.e. for extra functions like lights , horn, etc.). When we are using servo
motors, the PWM pins such as 3, 5, 6, 9, 10, and 11 are used. The servo motors
can be used for making opening and closing actions of doors by setting
different angles for left and right doors (prototype).
The Uno
can be programmed with the Arduino Software (IDE) and from that application,
program can be uploaded to the Arduino.
Figure 1
CIRCUIT DIAGRAM:
Figure 2
----------------------------------------------------------------------------------------------------------------------
PROGRAM:
char val;
//defining a variable for receiving the input from the user
void setup()
{
pinMode(4,OUTPUT);//connection of motor1 terminal to arduino
pinMode(5,OUTPUT);//connection of motor1 terminal to arduino
pinMode(6,OUTPUT);//connection of motor2 terminal to arduino
pinMode(7,OUTPUT);//connection of motor2 terminal to arduino
Serial.begin(9600);// THIS IS TO SPECIFY THE SPEED OF DATA TRANSFER
}
void loop()
{
if (Serial.available() )
{;}
val=Serial.read();
if (val=='0')// This condition for moving Forward
{
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
if(val=='1')//This condition for moving left
{
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
if(val=='2')//This condition for moving right
{
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}
if(val=='3')//This condition for moving backward
{
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(5,LOW);
digitalWrite(7,HIGH);
}
void setup()
{
pinMode(4,OUTPUT);//connection of motor1 terminal to arduino
pinMode(5,OUTPUT);//connection of motor1 terminal to arduino
pinMode(6,OUTPUT);//connection of motor2 terminal to arduino
pinMode(7,OUTPUT);//connection of motor2 terminal to arduino
Serial.begin(9600);// THIS IS TO SPECIFY THE SPEED OF DATA TRANSFER
}
void loop()
{
if (Serial.available() )
{;}
val=Serial.read();
if (val=='0')// This condition for moving Forward
{
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
if(val=='1')//This condition for moving left
{
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
if(val=='2')//This condition for moving right
{
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}
if(val=='3')//This condition for moving backward
{
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(5,LOW);
digitalWrite(7,HIGH);
}
if(val=='4')//This condition for stopping
{
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
{
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
if(val=='5')//condition for opening the door 90 degree(this loop can be used only
for servo motors)
for(angle = 0; angle < 90; angle++)
{
servo.write(angle);
delay(15);
}
}
---------------------------------------------------------------------------------------------------------------------------------------
CONSTRUCTION AND TESTING:
A 9V battery
supply is given to Arduino UNO by connecting the positive terminal to “Vin” and
negative terminal to “GND”. Then 5V from the Arduino is given to the “5v” pin,
in the HC-05 Bluetooth module and then connect the GND to “GND” of the
Bluetooth. Connect the “RX”(PIN 0) of the Arduino to the “TX” of the Bluetooth
device and “RX” of the Bluetooth to the “TX”(PIN 1) of the Arduino(refer figure
2). The supply for the motor is taken from Pin 4, Pin 5, Pin 6 and Pin 7. The
Arduino can deliver only a very small voltage as output from these pins. So, an
additional power is required for the motor to give enough torque. For this,
H-Bridge is used. We can give additional 12V supply, by connecting a 12V
battery to the H-Bridge voltage terminals. The output from Pin 4, Pin 5, Pin 6
and Pin 7 is given to INP A1, INP A2, INP B1 and INP B2 terminals in H-Bridge(refer
figure 2). The ground from H-Bridge is connected to the ground of the Arduino.
Then the two motors are directly connected to H-Bridge motor terminals.
The Bluetooth module is switched off or disconnected while burning the program to the Arduino UNO. Then the mechanical arrangement of the BOT(Car) is completed by inserting wheels to motors and placing it in right areas. Army directional wheels should be used in the front part of the car for moving left and right direction. After all the connections and mechanical arrangements are done, open the ArduinoRC application in Android smartphone and connect with the HC-05 Bluetooth device by typing “1234” as pin for pairing with HC-05. Feed the values of the program such as 0, 1, 2, 3, 4 in the app. Then switch on the battery supply in H-Bridge and the Bot is ready to be controlled by our smartphones. Like this we can add many additional features like lights, horn and music system to this BOT.
No comments