Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Bluetooth HC-05 Module: Examples, Pinouts, and Specs

Image of Bluetooth HC-05 Module
Cirkit Designer LogoDesign with Bluetooth HC-05 Module in Cirkit Designer

Introduction

The Bluetooth HC-05 Module, manufactured by ARDUINO (Part ID: MEGA), is a wireless communication module designed for short-range data transmission using Bluetooth technology. It is widely used in embedded systems to enable seamless communication between devices without the need for physical connections. The HC-05 module supports both master and slave modes, making it versatile for various applications.

Explore Projects Built with Bluetooth HC-05 Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Bluetooth Communication Module
Image of HC-05 Connection with arduino: A project utilizing Bluetooth HC-05 Module in a practical application
This circuit consists of an Arduino UNO microcontroller connected to an HC-05 Bluetooth module. The Arduino provides power to the Bluetooth module and facilitates serial communication between the two devices, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Bluetooth-Controlled Relay System
Image of home automaton: A project utilizing Bluetooth HC-05 Module in a practical application
This circuit features an Arduino UNO microcontroller interfaced with an HC-05 Bluetooth module for wireless communication. It also includes two 5V two-channel relay modules, which are connected to the Arduino for controlling external devices. The setup allows for remote control of devices via Bluetooth.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and HC-05 Bluetooth Communication Interface
Image of blutooth: A project utilizing Bluetooth HC-05 Module in a practical application
This circuit connects an HC-05 Bluetooth Module to an Arduino UNO for wireless communication. The HC-05's VCC and GND are connected to the Arduino's 5V and GND for power. The HC-05's TXD and RXD pins are connected to the Arduino's D11 and D10 pins, respectively, allowing for serial communication between the two devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Based Voice-Controlled LED with HC-05 Bluetooth
Image of voice controller led: A project utilizing Bluetooth HC-05 Module in a practical application
This circuit features an Arduino UNO microcontroller connected to an HC-05 Bluetooth module for wireless communication and a red LED with a series resistor for visual output. The Arduino is programmed to control the LED based on serial commands received, which could be sent from a Bluetooth-paired device using the HC-05 module. The LED is driven by a digital pin (D13) through a 220-ohm resistor to limit current, and the Bluetooth module interfaces with the Arduino via serial communication (RX/TX).
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Bluetooth HC-05 Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of HC-05 Connection with arduino: A project utilizing Bluetooth HC-05 Module in a practical application
Arduino UNO Bluetooth Communication Module
This circuit consists of an Arduino UNO microcontroller connected to an HC-05 Bluetooth module. The Arduino provides power to the Bluetooth module and facilitates serial communication between the two devices, enabling wireless data transmission.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of home automaton: A project utilizing Bluetooth HC-05 Module in a practical application
Arduino UNO Bluetooth-Controlled Relay System
This circuit features an Arduino UNO microcontroller interfaced with an HC-05 Bluetooth module for wireless communication. It also includes two 5V two-channel relay modules, which are connected to the Arduino for controlling external devices. The setup allows for remote control of devices via Bluetooth.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of blutooth: A project utilizing Bluetooth HC-05 Module in a practical application
Arduino UNO and HC-05 Bluetooth Communication Interface
This circuit connects an HC-05 Bluetooth Module to an Arduino UNO for wireless communication. The HC-05's VCC and GND are connected to the Arduino's 5V and GND for power. The HC-05's TXD and RXD pins are connected to the Arduino's D11 and D10 pins, respectively, allowing for serial communication between the two devices.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of voice controller led: A project utilizing Bluetooth HC-05 Module in a practical application
Arduino UNO Based Voice-Controlled LED with HC-05 Bluetooth
This circuit features an Arduino UNO microcontroller connected to an HC-05 Bluetooth module for wireless communication and a red LED with a series resistor for visual output. The Arduino is programmed to control the LED based on serial commands received, which could be sent from a Bluetooth-paired device using the HC-05 module. The LED is driven by a digital pin (D13) through a 220-ohm resistor to limit current, and the Bluetooth module interfaces with the Arduino via serial communication (RX/TX).
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Wireless communication between microcontrollers and smartphones
  • Remote control of robots and IoT devices
  • Data logging and monitoring systems
  • Home automation projects
  • Serial communication between devices

Technical Specifications

The HC-05 module is a robust and reliable Bluetooth module with the following key specifications:

Parameter Value
Bluetooth Version 2.0 + EDR (Enhanced Data Rate)
Operating Voltage 3.3V to 5V
Operating Current 30mA (typical)
Communication Protocol UART (Universal Asynchronous Receiver-Transmitter)
Baud Rate (Default) 9600 bps
Range Up to 10 meters (unobstructed)
Frequency Band 2.4 GHz ISM band
Master/Slave Support Configurable
Dimensions 28mm x 15mm x 2.35mm

Pin Configuration and Descriptions

The HC-05 module has 6 pins, as described in the table below:

Pin Name Pin Number Description
EN (Key) 1 Enables AT command mode when pulled HIGH.
VCC 2 Power supply pin (3.3V to 5V).
GND 3 Ground pin.
TXD 4 Transmit data pin (connect to RX of microcontroller).
RXD 5 Receive data pin (connect to TX of microcontroller).
STATE 6 Indicates connection status (HIGH when connected).

Usage Instructions

How to Use the HC-05 Module in a Circuit

  1. Power Supply: Connect the VCC pin to a 5V power source and the GND pin to ground.
  2. UART Communication: Connect the TXD pin of the HC-05 to the RX pin of your microcontroller, and the RXD pin of the HC-05 to the TX pin of your microcontroller.
  3. AT Command Mode: To configure the module, pull the EN (Key) pin HIGH and use AT commands via a serial terminal.
  4. Pairing: The HC-05 module will appear as a Bluetooth device on your smartphone or computer. Pair it using the default PIN code (1234 or 0000).

Important Considerations and Best Practices

  • Use a voltage divider or level shifter on the RXD pin if your microcontroller operates at 5V logic levels to avoid damaging the module.
  • Ensure the module is within the specified range (10 meters) for reliable communication.
  • Avoid placing the module near sources of electromagnetic interference (e.g., motors, high-frequency circuits).
  • Use AT commands to configure the module's baud rate, name, and mode (master/slave) as needed.

Example: Connecting HC-05 to Arduino UNO

Below is an example of how to use the HC-05 module with an Arduino UNO to send and receive data via Bluetooth.

Circuit Connections

  • HC-05 VCC → Arduino 5V
  • HC-05 GND → Arduino GND
  • HC-05 TXD → Arduino RX (Pin 0)
  • HC-05 RXD → Arduino TX (Pin 1)

Arduino Code

#include <SoftwareSerial.h>

// Create a SoftwareSerial object to communicate with HC-05
SoftwareSerial BTSerial(10, 11); // RX, TX pins for HC-05

void setup() {
  Serial.begin(9600); // Initialize Serial Monitor at 9600 baud
  BTSerial.begin(9600); // Initialize HC-05 at 9600 baud

  Serial.println("Bluetooth HC-05 Module Test");
  Serial.println("Send data via Bluetooth to see it here.");
}

void loop() {
  // Check if data is available from HC-05
  if (BTSerial.available()) {
    char data = BTSerial.read(); // Read data from HC-05
    Serial.print("Received: ");
    Serial.println(data); // Print received data to Serial Monitor
  }

  // Check if data is available from Serial Monitor
  if (Serial.available()) {
    char data = Serial.read(); // Read data from Serial Monitor
    BTSerial.write(data); // Send data to HC-05
  }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Module Not Powering On

    • Ensure the VCC pin is connected to a 5V power source.
    • Check for loose connections or damaged wires.
  2. Unable to Pair with Device

    • Verify that the module is powered on and in discoverable mode (LED blinking rapidly).
    • Ensure the correct PIN code (1234 or 0000) is used during pairing.
  3. No Data Transmission

    • Check the TXD and RXD connections between the HC-05 and the microcontroller.
    • Ensure the baud rate of the HC-05 matches the microcontroller's UART settings.
  4. AT Commands Not Working

    • Confirm that the EN (Key) pin is pulled HIGH to enable AT command mode.
    • Use a serial terminal with the correct baud rate (default: 9600 bps).

FAQs

Q: Can the HC-05 module be used with 3.3V microcontrollers?
A: Yes, the HC-05 module operates at 3.3V logic levels and is compatible with 3.3V microcontrollers.

Q: How do I reset the HC-05 module to factory settings?
A: Enter AT command mode and send the AT+ORGL command to reset the module to its default settings.

Q: Can the HC-05 module communicate with another HC-05 module?
A: Yes, configure one module as a master and the other as a slave using AT commands.

Q: What is the maximum data rate supported by the HC-05 module?
A: The HC-05 module supports a maximum baud rate of 1382400 bps, but the default is 9600 bps.