Модуль HC-05 или HC-06 из Китая не определяется смартфоном или «спамит» мусором в монитор порта — чаще всего причина не в браке, а в неправильной схеме подключения: линия RX модуля получает 5 В напрямую с пина TX контроллера, хотя логика модуля рассчитана на 3,3 В. Такая ошибка либо сразу выводит приёмник из строя, либо постепенно деградирует вход, и модуль начинает вести себя непредсказуемо.

Китайские Bluetooth-модули — это чаще всего платы на базе чипов HC-05, HC-06, JDY-31 или HM-10 (BLE). Внешне они похожи, но отличаются логикой работы, поддержкой режимов и распиновкой. В этой статье разберём правильную схему подключения к Arduino и аналогичным платам, объясним, зачем нужен делитель напряжения, как войти в режим AT-команд и какие ошибки встречаются чаще всего.

Какие модули привозят из Китая и чем они отличаются

Прежде чем собирать схему, определите, какой именно модуль у вас в руках. Маркировка нанесена на плате, а если её нет — ориентируйтесь по числу контактов и рисунку дорожек. От модели зависит и схема, и способ настройки.

  • 🔵 HC-05 — классический Bluetooth 2.0, поддерживает режимы master и slave, 6 контактов, настраивается через AT-команды.
  • 🟢 HC-06 — упрощённая версия, работает только в режиме slave, обычно 4 контакта на плате-переходнике, набор AT-команд минимальный.
  • 🟡 JDY-31 — бюджетный аналог с аналогичной распиновкой, логика 3,3 В, популярен в недорогих наборах.
  • HM-10 — модуль Bluetooth Low Energy (BLE), требует другого подхода к сопряжению: он не виден в обычном списке Bluetooth-устройств телефона.

Обратите внимание на конструкцию: часто сам модуль напаян на плату-переходник (baseboard) с выведенными контактами VCC, GND, TX, RX, STATE, EN. На многих таких платах стоит стабилизатор питания, позволяющий подавать на VCC 5 В, но это не означает, что логические входы стали 5-вольтовыми — линии RX/TX всё равно работают на уровне 3,3 В.

💡

Плата-переходник со стабилизатором защищает только питание модуля. Линия RX остаётся 3,3-вольтовой и требует делителя напряжения при подключении к 5-вольтовому контроллеру.

Распиновка и назначение контактов

Стандартная распиновка платы-переходника для HC-05 выглядит так (порядок может отличаться у разных продавцов — сверяйтесь с шелкографией на плате):

КонтактНазначениеКуда подключать
VCCПитание модуля5 В (при наличии стабилизатора) или 3,3 В
GNDОбщий проводGND контроллера
TXПередача данных от модуляRX контроллера (напрямую)
RXПриём данных модулемTX контроллера через делитель напряжения
EN / KEYВход в режим AT-команд3,3 В или кнопка на плате

Контакт STATE выдаёт логический уровень в зависимости от состояния соединения и в базовой схеме не обязателен. Его удобно использовать, чтобы контроллер «знал», установлено ли соединение со смартфоном.

У HC-06 и JDY-31 выведены обычно только четыре линии: питание, земля, RX и TX. Это упрощает сборку, но лишает возможности аппаратно входить в расширенный режим настройки.

Схема подключения к Arduino: пошагово

Рассмотрим классическую схему на примере Arduino Uno и модуля HC-05. Порядок действий одинаков для большинства связок «5-вольтовый контроллер + 3,3-вольтовый модуль».

Сначала соедините питание: VCC модуля — к выводу 5V платы Arduino (если на переходнике есть стабилизатор), GND — к GND. Затем линию TX модуля подключите напрямую к пину RX Arduino — здесь ничего согласовывать не нужно, потому что контроллер корректно воспринимает 3,3 В как высокий уровень.

Самый ответственный шаг — линия RX модуля. Её подключают к пину TX Arduino только через делитель напряжения из двух резисторов, например 1 кОм и 2 кОм: пин TX → резистор 1 кОм → точка соединения → резистор 2 кОм → GND, а RX модуля — в точку соединения резисторов. Так 5 В превращаются примерно в 3,3 В.

☑️ Проверка схемы перед подачей питания

Выполнено: 0 / 5

⚠️ Внимание: если вы используете аппаратный UART Arduino (пины 0 и 1), отключайте модуль на время загрузки скетча — иначе прошивка не загрузится, а среда Arduino выдаст ошибку. Альтернатива — библиотека SoftwareSerial и любые свободные цифровые пины.

После сборки подайте питание. Светодиод на модуле должен начать быстро мигать — это признак того, что модуль работает и ожидает сопряжения. Ритм мигания зависит от режима: быстрый обычно означает «ожидание подключения», редкий двойной — установленное соединение, но точные режимы индикации уточняйте в описании конкретной платы продавца.

Зачем нужен делитель напряжения и когда его можно не ставить

Логика модулей HC-05/HC-06 рассчитана на 3,3 В. Подача 5 В на вход RX — это превышение допустимого уровня. Модуль может проработать так какое-то время, но ресурс входного каскада сокращается, и со временем появляются сбои приёма: потерянные символы, «мусор» в терминале, зависания.

Делитель не нужен в двух случаях. Первый — контроллер сам 3,3-вольтовый (ESP32, ESP8266, Arduino Due, многие платы STM32): уровни совпадают, соединение прямое. Второй — на плате-переходнике установлен преобразователь уровней, что бывает редко и должно быть явно указано продавцом.

💡

Если под рукой нет двух резисторов, линию RX можно временно согласовать одним последовательным резистором 1–10 кОм — это хуже полноценного делителя, но заметно безопаснее прямого подключения 5 В. Для постоянной схемы соберите нормальный делитель или возьмите двунаправленный преобразователь уровней.

В обратную сторону — от TX модуля к RX контроллера — согласование не требуется. Порог высокого уровня у 5-вольтовых AVR-контроллеров находится ниже 3,3 В, поэтому сигнал читается корректно.

📊 Какой Bluetooth-модуль вы подключаете?
HC-05
HC-06
JDY-31
HM-10 (BLE)

Настройка модуля через AT-команды

Заводские параметры модуля — имя, скорость UART, PIN-код сопряжения — меняются AT-командами. У HC-05 для этого есть отдельный режим: нужно подать высокий уровень на контакт EN/KEY до подачи питания или зажать кнопку на плате (если она есть) при включении. Признак входа в AT-режим — медленное равномерное мигание светодиода.

Команды отправляются через монитор порта или скетч-посредник. Типичный набор для HC-05:

AT          — проверка связи (ответ: OK)

AT+NAME? — запрос текущего имени

AT+NAME=MyDevice — смена имени

AT+PSWD? — запрос PIN-кода сопряжения

AT+UART? — запрос скорости UART

Нюансы, о которых часто забывают: в AT-режиме HC-05 обычно работает на фиксированной скорости 38400 бод независимо от настроенной пользовательской, а команды нужно отправлять с окончанием строки CR+LF («оба NL и CR» в мониторе порта). У HC-06 всё иначе: он принимает AT-команды в обычном рабочем режиме, без символов конца строки, и набор команд у него сильно урезан.

Модуль не отвечает на AT-команды — что проверить

1) Скорость порта: попробуйте 38400 для HC-05 в AT-режиме и 9600 для рабочего режима. 2) Окончание строки: для HC-05 — CR+LF, для HC-06 — без окончания. 3) Действительно ли модуль в AT-режиме (медленное мигание). 4) Не перепутаны ли RX и TX. 5) Есть ли делитель на RX — без него модуль мог выйти из строя.

Типичные ошибки и их признаки

Большинство проблем с китайскими модулями сводится к нескольким повторяющимся сценариям.

  • 🔌 Перепутаны RX и TX — модуль «молчит» в обе стороны. Линии UART соединяются перекрестно: TX одного устройства идёт на RX другого.
  • 📶 Нет делителя на RX — сначала всё работает, затем появляются сбои приёма или модуль перестаёт принимать данные совсем.
  • 🔢 Неверная скорость UART — в терминал приходят «кракозябры». Переберите стандартные значения: 9600, 38400, 57600, 115200.
  • 📱 Модуль BLE не виден в настройках телефона — для HM-10 и подобных нужно приложение-терминал с поддержкой BLE, а не штатный поиск устройств.
  • 🔋 Нестабильное питание — модуль перезагружается при попытке соединения. Проверьте качество контактов и запас по току источника.

⚠️ Внимание: PIN-код сопряжения у китайских модулей чаще всего заводской — 1234 или 0000, но это не гарантировано для каждой партии. Если ни один не подходит, измените PIN через AT-команду AT+PSWD или уточните у продавца.

💡

Держите первый тест максимально простым: скетч-эхо, который возвращает в Bluetooth всё, что приходит с Serial-монитора, и наоборот. Так вы сразу локализуете проблему — в железе или в логике основного проекта.

Проверка связи со смартфоном

Для проверки установите на смартфон любое приложение Bluetooth-терминала — в магазинах приложений их много, выбирайте с поддержкой классического Bluetooth (SPP) для HC-05/06 или BLE для HM-10. Выполните сопряжение в настройках телефона, введите PIN, затем откройте терминал и подключитесь к модулю.

Отправьте из терминала любой символ — он должен появиться в мониторе порта Arduino, если загружен эхо-скетч. Обратная передача проверяется аналогично: текст из монитора порта должен прийти в терминал телефона. Если данные идут только в одну сторону, проблема почти наверняка в линии RX модуля — проверьте делитель и пайку.

💡

Рабочая схема в одном предложении: питание по даташиту платы, общий GND, TX модуля напрямую на RX контроллера, RX модуля через делитель 1 кОм/2 кОм на TX контроллера, настройка — через AT-режим с правильной скоростью и окончаниями строк.

Часто задаваемые вопросы

Можно ли подключить HC-05 напрямую к Arduino без резисторов?

Физически схема заработает, и многие так делают, но вход RX модуля рассчитан на 3,3 В. Подача 5 В сокращает срок службы приёмного каскада и со временем приводит к сбоям. Делитель из двух резисторов стоит копейки и собирается за минуту — экономить на нём нет смысла.

Чем HC-05 отличается от HC-06 на практике?

HC-05 умеет работать в режиме master, то есть сам инициирует соединение с другим устройством, и имеет расширенный набор AT-команд. HC-06 — только slave: он ждёт подключения, и набор настроек у него минимальный. Для связки «Arduino + смартфон» обычно достаточно HC-06, для связи двух контроллеров между собой нужен хотя бы один HC-05.

Почему модуль виден в телефоне, но не подключается из приложения?

Возможные причины: модуль уже занят другим соединением (отключите прежнее устройство), приложение не поддерживает нужный профиль (SPP для классических модулей, GATT для BLE), либо неверный PIN при сопряжении. Также проверьте, что модуль не находится в AT-режиме — в нём обычное соединение недоступно.

Какая скорость UART стоит по умолчанию?

Чаще всего 9600 бод для рабочего режима, но это зависит от партии и продавца. Если в терминале «мусор», переберите стандартные скорости. AT-режим HC-05 работает на 38400 бод независимо от пользовательской настройки.

Можно ли соединить два Arduino по Bluetooth?

Да, но один из модулей должен уметь режим master — подойдёт HC-05. Второй может быть любым slave-модулем. Master настраивается AT-командами на адрес ведомого устройства, после чего соединение устанавливается автоматически при включении. Порядок привязки зависит от версии прошивки модуля, поэтому сверяйтесь с документацией на конкретную плату.