Interfacing HC-05 Bluetooth Module with Arduino Uno

Interfacing HC-05 Bluetooth Module with Arduino Uno

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

HC-05 Bluetooth Module

HC-05 Bluetooth Module
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

Interfacing HC-05 Bluetooth Module with Arduino Uno
Interfacing HC-05 Bluetooth Module with Arduino Uno

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

Interfacing HC-05 Bluetooth Module with Arduino Uno - Practical Implementation
Interfacing HC-05 Bluetooth Module with Arduino Uno – 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.


Share this post

  • 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?


  • >