

The HC-05 is a Bluetooth module designed and manufactured by Arduino to enable wireless communication between devices. It supports both master and slave modes, making it a versatile solution for a wide range of applications. The module is commonly used to establish communication between microcontrollers, such as Arduino boards, and Bluetooth-enabled devices like smartphones, tablets, or PCs.








The HC-05 module is a robust and reliable Bluetooth device with the following key specifications:
| Parameter | Value |
|---|---|
| Bluetooth Version | 2.0 + EDR (Enhanced Data Rate) |
| Operating Voltage | 3.3V to 5V |
| Communication Protocol | UART (Universal Asynchronous Receiver-Transmitter) |
| Default Baud Rate | 9600 bps |
| Power Consumption | < 50mA |
| Range | Up to 10 meters (unobstructed) |
| Operating Modes | Master and Slave |
| Dimensions | 37.5mm x 15.2mm x 2.5mm |
The HC-05 module has six pins, as described in the table below:
| Pin Name | Description |
|---|---|
| VCC | Power supply pin. Connect to 3.3V or 5V. |
| GND | Ground pin. Connect to the ground of the circuit. |
| TXD | Transmit pin. Sends serial data to the connected microcontroller or device. |
| RXD | Receive pin. Receives serial data from the connected microcontroller or device. |
| EN (Key) | Enable pin. Used to switch between command mode and data mode. |
| STATE | Indicates the connection status. High when connected, low when not connected. |
1234 or 0000.Below is an example of how to use the HC-05 module with an Arduino UNO to send and receive data:
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial BTSerial(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
Serial.begin(9600); // Start Serial Monitor at 9600 baud
BTSerial.begin(9600); // Start Bluetooth communication at 9600 baud
Serial.println("HC-05 Bluetooth Module Test");
Serial.println("Send data from Serial Monitor to Bluetooth device.");
}
void loop() {
// Check if data is available from Bluetooth
if (BTSerial.available()) {
char data = BTSerial.read(); // Read data from Bluetooth
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 Bluetooth device
Serial.print("Sent: ");
Serial.println(data); // Print sent data to Serial Monitor
}
}
Module Not Powering On:
Unable to Pair with Device:
1234 or 0000) is used.No Data Transmission:
Cannot Enter Command Mode:
Q: Can the HC-05 module communicate with another HC-05 module?
A: Yes, the HC-05 can communicate with another HC-05 module when one is set to master mode and the other to slave mode.
Q: What is the maximum range of the HC-05 module?
A: The HC-05 has a maximum range of up to 10 meters in an unobstructed environment.
Q: How do I change the module name or baud rate?
A: Enter command mode by pulling the EN pin high and use AT commands to configure the module. For example, use AT+NAME=NewName to change the name.
Q: Can the HC-05 work with 5V logic levels?
A: The HC-05 operates at 3.3V logic levels. Use a voltage divider on the RXD pin if connecting to a 5V microcontroller.
By following this documentation, you can effectively integrate the HC-05 Bluetooth module into your projects for seamless wireless communication.