Bluetooth-модуль HC-06: распиновка, характеристики, подключение к Arduino и AT-команды
Общие сведения
HC-06 — популярный, дешёвый Bluetooth-модуль версии 2.0/2.1+EDR, работающий **только в режиме Slave (ведомый)**. Позволяет организовать беспроводной UART-канал (SPP — Serial Port Profile) между микроконтроллером и смартфоном/ПК/другим МК. Не поддерживает BLE (Bluetooth Low Energy) и не может инициировать соединение (только принимать).
Распиновка (типичная 6-пиновая плата)
| Пин | Название | Функция |
|---|---|---|
| 1 | KEY / EN | Режим: LOW/NC = работа (Data mode), HIGH = AT-команды (Command mode). На некоторых платах не выведен. |
| 2 | VCC | Питание 3.6–6 В (на плате часто стоит LDO 3.3В, тогда можно 5В). Ток ~30–50 мА. |
| 3 | GND | Земля |
| 4 | TXD | Выход данных модуля (UART TX), 3.3В логика. Подключается к RX МК. |
| 5 | RXD | Вход данных модуля (UART RX), 3.3В логика. Подключается к TX МК **через делитель напряжения!** |
| 6 | STATE | Статус соединения: HIGH = подключено, LOW = нет. Часто к светодиоду на плате. |
Важно: Логика модуля 3.3В. RXD **не толерантен к 5В** — обязателен делитель (1к/2к или 2к/3к Ом) от 5В МК (Arduino Uno, Mega, Nano). TXD можно подключать прямо к 5В RX МК (3.3В = логическая 1 для 5В TTL).
Основные характеристики
| Параметр | Значение |
|---|---|
| Bluetooth версия | 2.0 + EDR (Enhanced Data Rate) |
| Профиль | SPP (Serial Port Profile) |
| Рабочая частота | 2.4 ГГц ISM |
| Макс. скорость UART | 1382400 бод (стандарт: 9600, 38400, 115200) |
| Мощность передатчика | ≤ 4 дБм (Class 2, ~10 м) |
| Чувствительность приёмника | ≤ −84 дБм (BER 0.1%) |
| Модуляция | GFSK (Gaussian Frequency Shift Keying) |
| Рабочая температура | −20…+55 °C |
| Габариты платы | ~36×16×5 мм |
Подключение к Arduino (Uno/Nano/Mega)
Схема с делителем напряжения на RXD
Arduino TX (D1) ──[2.2к]──┬──[3.3к]── GND
│
▼
HC-06 RXD
Arduino RX (D0) ◄──────── HC-06 TXD (прямо, 3.3В OK для 5В входа)
Arduino 5V ────────────── HC-06 VCC (если на плате есть LDO, иначе 3.3В!)
Arduino GND ───────────── HC-06 GND
Для 3.3В МК (ESP32, STM32, SAMD, MKR) делитель **не нужен** — подключайте прямо TX↔RX, RX↔TX.
Работа в Data Mode (прозрачный UART)
- Питание на модуль → мигает светодиод (ожидание пары).
- На смартфоне/ПК: Bluetooth → поиск → «HC-06» → пароль **1234** (или 0000/123456).
- После парирования светодиод на модуле горит постоянно (STATE=HIGH).
- Откройте терминал (Serial Bluetooth Terminal на Android, PuTTY/TeraTerm на ПК через виртуальный COM-порт).
- Отправляемые символы проходят в UART МК и обратно — прозрачный мост.
AT-команды (Command Mode)
Для входа: подать HIGH на KEY/EN **перед** включением питания (или перезагрузить модуль с HIGH на KEY). Светодиод будет мигать редко (~1 раз/2 сек). Скорость в AT-режиме фиксирована **9600 бод, 8N1**, независимо от настройк скорости в Data Mode.
| Команда | Ответ | Описание |
|---|---|---|
| AT | OK | Проверка связи |
| AT+VERSION | linvorV1.8 / HC-06 V2.0... | Версия прошивки |
| AT+NAME<name> | OKsetname | Имя устройства (до 20 симв.), напр. AT+NAMEMySensor |
| AT+PIN<xxxx> | OKsetPIN | Пароль парирования (4 цифры), напр. AT+PIN4321 |
| AT+BAUD<1-8> | OK | Скорость Data Mode: 1=1200, 2=2400, 3=4800, 4=9600(по умолч.), 5=19200, 6=38400, 7=57600, 8=115200 |
| AT+PARI<N/E/O> | OK | Чётность: None/Even/Odd (обычно N) |
Пример смены имени и скорости:
// В AT-режиме (KEY=HIGH, 9600 бод):
AT+NAMEMyRobot
AT+BAUD6 // 38400 бод
// Перезагрузите модуль без KEY (LOW) — работает на новой скорости.
Практические советы
- **Конденсатор 100 мкФ + 100 нФ** на питании модуля — убирает сбросы при старте передачи.
- **Не питайте от 3.3В пина Arduino Uno** — слабый LDO (50 мА), модуль может потреблять до 80 мА пиковый. Питайте от 5В (VIN/5V пин) или внешнего стабилизатора.
- **Пароль по умолчанию 1234** — обязательно меняйте для безопасности.
- **HC-06 ≠ HC-05**: HC-05 может быть Master/Slave, имеет больше AT-команд, кнопку режима на плате. HC-06 — только Slave, проще, дешевле.
- **Расстояние**: в помещении 5–10 м, на улице до 20–30 м при прямой видимости.
- **Не работает с iOS** для SPP (Apple закрыла профиль). Для iOS нужен BLE (HM-10, ESP32, nRF52).
Типичные ошибки
- Перекрёстное подключение TX↔TX, RX↔RX — должно быть TX МК → RX модуля (через делитель), RX МК ← TX модуля.
- Отсутствие делителя на RXD модуля при 5В МК — сжигает вход модуля.
- Попытка подключиться к двум HC-06 одновременно — Slave принимает только одно соединение.
- Использование `SoftwareSerial` на пинах без прерываний (на Uno: D2/D3 только для надежного приёма >9600 бод). Лучше HardwareSerial (Mega: Serial1/2/3, ESP32: Serial1/2).
Заключение
HC-06 — дешёвый и простой способ добавить Bluetooth SPP в проект на Arduino/STM32/ESP32. Ключевые моменты: 3.3В логика (делитель на RXD!), питание от 5В через LDO на плате, режим только Slave, AT-команды на 9600 бод с KEY=HIGH. Для BLE/iOS/мастер-роли — смотрите в сторону ESP32, HM-10, nRF52840.
Промышленные технологии
- Датчик положения дросселя: принцип работы и значение
- RVG-сенсор: принцип работы и трансформация стоматологической визуализации
- Пульс-сенсор: принцип работы и ключевые применения для мейкеров
- Понимание RTD-датчиков: принципы, точность и ключевые применения
- Понимание 3D-печати: принципы, типы и ключевые применения
- Водонарезная обработка (WJM): принципы, оборудование, преимущества и применение
- Куполная печь: устройство, принцип работы и применение
- Транзистор 2N3771: распиновка, параметры, применение и аналоги
- DS18B20: 1-Wire цифровой датчик температуры — распиновка, характеристики, применение
- Литье под давлением (Die Casting): принцип работы, горячая и холодная камера, применение