Interfacing HC-05 Bluetooth Module with Arduino Uno
Contents
In this tutorial, I will explain about Interfacing HC-05 Bluetooth Module with Arduino Uno. HC-05 uses bluetooth classic and can be configured in master or slave modes. It can be interfaced with a microcontroller using UART.
Components Required
- Arduino Uno
- HC-05 Bluetooth Module
- LED
- Jumper Wires
- Bread Board
Software Required
- Arduino IDE
- Android App – Arduino Bluetooth Controller
HC-05 Bluetooth Module
- Operating Voltage : 4 V to 6V (have internal 3.3V regulator).
- Operating Current : 30mA
- Integrated antenna and an edge connector.
- Range about 10 meters.
- Configurable in both master and slave modes.
- Pins : STATE, RXD, TXD, GND, VCC, KEY/ENABLE
Pin Out
- STATE : State pin indicates whether the module is connected or paired with a device. When the module is not connected, this pin will be in LOW state and the on-board LED will be flashing fast. But when the module is paired or connected to a device, the state pin will be in HIGH state and the on-board LED will be flashing with a delay.
- RXD : This is UART RX pin. This pin is used to send AT command when the module is in command mode. And it is used to send data to the connected device when the module is in data mode.
- TXD : This is UART TX pin. This pin is used push out responses to AT command when the module is in command mode. And it is used push out data send by the connected device when the module is in data mode.
- GND : Power supply -ive.
- VCC : Power supply +ive.
- EN/KEY : This input is used to switch between command and data mode. If this pin is set HIGH, the module will be in command mode. Similarly if this pin is set LOW, the module will be in data mode.
Circuit Diagram
Description
- RXD pin of HC-05 Bluetooth – TXD pin of Arduino Uno
- TXD pin of HC-05 Bluetooth – RXD pin of Arduino Uno
- GND pin of HC-05 Bluetooth – GND pin of Arduino Uno
- VCC pin of HC-05 Bluetooth – 5V output pin of Arduino Uno
- Positive pin of LED – Pin 13 of Arduino Uno
- Negative pin of LED – GND pin of Arduino Uno
Arduino Bluetooth Controller
Hope you installed this app from Google Play Store. This app will act as a Bluetooth remote controller for Arduino. It is very easy to use this app. Open the app and connect to the HC-05 device. Then select the option as switch mode. Now you can control the LED using the app.
Program
char data = 0; //Variable for storing received data
void setup()
{
Serial.begin(9600); //Sets the data rate in bits per second (baud) for serial data transmission
pinMode(13, OUTPUT); //Sets digital pin 13 as output pin
}
void loop()
{
if(Serial.available() > 0) // Send data only when you receive data:
{
data = Serial.read(); //Read the incoming data and store it into variable data
Serial.print(data); //Print Value inside data in Serial monitor
Serial.print("\n"); //New line
if(data == '1') //Checks whether value of data is equal to 1
digitalWrite(13, HIGH); //If value is 1 then LED turns ON
else if(data == '0') //Checks whether value of data is equal to 0
digitalWrite(13, LOW); //If value is 0 then LED turns OFF
}
}
Description
- Initialize the serial port (UART) with the default baudrate of HC-05 Bluetooth module.
- Initialize Pin 13 as output pin.
- In the loop() we keep checking any data is available to read from the serial port.
- If data is available to read, store it to the variable named “data”.
- If the data read is ‘1’ then the LED is turned ON, else LED will be turned OFF.
Practical Implementation
Video
Conclusion
I hope that you understood about HC-05 and interfacing it with Arduino Uno. Try to modifying the above code as per your requirements. Please feel free to comment below if you have any doubts.
Can you please elaborate your requirements ?
Hey, I am working on a project which uses Bluetooth HC-05 as one of its components. If there are multiple inputs then where is the data of all the inputs stored? Is it in the sd card of the phone?