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.
Practical 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.
ASCII Table and Serial Data
Source code and build tools are available in the protected platform workspace.
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. |
Connection reference for this build
- HC-05 / HC-04 serial wiring with Arduino Nano
- +5V rail
- Common GND rail
- Arduino Nano
- D2 RX <- HC TXD
- D3 TX -> divider -> HC RXD
- 5V -> VCC
- GND -> GND
- HC-05
- VCC
- GND
- TXD
- RXD
- TXD sends data to Nano D2
- D3 through divider to RXD
- divider
- Use divider for 5V Nano TX to 3.3V RXD
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.