Bluetooth Serial Module: HC-05 / HC-06
A Bluetooth serial module receives characters from a phone or computer and passes them to the microcontroller through serial pins. Many classroom kits use HC-05 or HC-06; if your board label says HC-04, verify its datasheet and pinout before wiring.
Working Principle
A Bluetooth serial module receives characters from a phone or computer and passes them to the microcontroller through serial pins. Many classroom kits use HC-05 or HC-06; if your board label says HC-04, verify its datasheet and pinout before wiring.
Step by Step
- Pair the phone with the Bluetooth module.
- Phone sends a command such as F, B, L, R, or S.
- Module outputs serial data to the controller RX pin.
- Controller program maps the command to motor action.
Working Simulation
Verified Learning Notes
Most classroom robot kits use HC-05 or HC-06 serial Bluetooth modules. If a board is labeled HC-04, verify its pinout and mode before wiring.
Bluetooth radio is not read directly by Arduino. The module converts wireless packets into UART serial data on TXD and RXD pins.
HC-05 TXD can go to Nano RX. Nano TX should go to module RXD through a resistor divider because RXD is usually 3.3V logic.
Open Serial Monitor or a phone terminal and confirm one command character produces one robot action.
Simulation Challenge
Use the working simulation above before touching wires. Change one value or command at a time, predict the result, then compare it with the diagram and the real module.
- Say what input changed.
- Predict the output.
- Run the simulator.
- Explain why the result is correct for Bluetooth Serial Module: HC-05 / HC-06.
Authenticity Checklist
- Does the diagram match Arduino Nano pin names?
- Does every signal have a common ground reference?
- Is the module powered at its correct voltage?
- Does the explanation separate signal, data, power, and mechanical motion?
ASCII Table and Serial Data
+-------------+---------------------+------------------------------+ | Item | Typical value | Student meaning | +-------------+---------------------+------------------------------+ | Radio band | 2.402-2.480 GHz | Wireless link in air | | Serial rate | 9600 bps default | Bits sent each second | | Command F | 01000110 ASCII | One byte means Forward | | Nano RX | D2 | Reads module TXD | | Nano TX | D3 via divider | Sends to module RXD safely | +-------------+---------------------+------------------------------+
bps means bits per second. At 9600 bps, the serial line sends about 9600 high/low bit decisions each second. A full command character also has start and stop bits, so classroom control is fast enough for F, B, L, R, and S robot commands.
Common Command Map
| Phone sends | ASCII | Robot action |
|---|---|---|
| F | 0x46 | Move forward |
| B | 0x42 | Move backward |
| L | 0x4C | Turn left |
| R | 0x52 | Turn right |
| S | 0x53 | Stop motors |
Bluetooth Frequency and BPS
Classic Bluetooth modules such as HC-05 commonly use the 2.4 GHz ISM band from about 2.402 GHz to 2.480 GHz. Bluetooth hops across channels to reduce interference from Wi-Fi, other Bluetooth devices, and classroom electronics.
The radio link carries wireless packets. The module then exposes simple serial data to Arduino. For beginner robots, 9600 bps is common because it is reliable and easy to debug in Serial Monitor.
Wiring Diagram
| Module Pin | Arduino Nano | Note |
|---|---|---|
| VCC | 5V | Most breakout boards accept 5V power. Check your board label. |
| GND | GND | Must share common ground with Nano and motor driver. |
| TXD | D2 RX | Module transmits data to Arduino. |
| RXD | D3 TX through divider | Use a resistor divider because module RX is 3.3V logic. |
| KEY/EN | Not connected for normal robot use | Used only for AT setup on some boards. |
Pulse to Data
The Arduino does not see the 2.4 GHz radio directly. The Bluetooth module receives radio packets, decodes them, and outputs a serial waveform on TXD. Arduino samples that waveform at the selected bps rate and rebuilds bytes such as F or S.
In serial UART, idle is HIGH, a start bit goes LOW, data bits follow, and a stop bit returns HIGH. The pattern below is a simplified classroom representation.