Bluetooth

Bluetooth удобен, когда робот должен принимать короткие команды с телефона рядом: вперёд, стоп, включить режим, вывести телеметрию. В учебных проектах часто используют HC-06 или HC-05: для Arduino они выглядят как последовательный UART-мост, а телефон видит Bluetooth-устройство.
Bluetooth — это радиоканал ближнего действия. HC-06 и HC-05 обычно работают как Bluetooth Classic SPP и передают байты через UART. BLE-модули вроде HM-10 используют другую модель данных: сервисы и характеристики. Перед программой нужно уточнить профиль, скорость UART, питание и формат команд.
Зачем это нужно
Телефон проще держать в руках, чем ноутбук с кабелем. Поэтому Bluetooth хорош для первого пульта робота, проверки моторов, настройки параметров и короткой телеметрии. Но робот не должен бесконечно выполнять последнюю команду, если связь пропала.
Для первых опытов лучше начинать не с моторов, а со встроенного светодиода Arduino. Если символы с телефона уверенно включают и выключают LED, значит питание, сопряжение, UART и программа уже работают.
Примеры устройств

| Модуль | Тип Bluetooth | Интерфейс к Arduino | Что важно проверить |
|---|---|---|---|
| HC-06 | Classic SPP, обычно только принимает соединение | UART | скорость, пароль, уровень RXD |
| HC-05 | Classic SPP, может инициировать или принимать соединение | UART | режим AT-команд и режим данных |
| HM-10 | Bluetooth Low Energy | UART к модулю, BLE GATT по радио | приложение должно поддерживать BLE |
| JDY-31 | dual-mode / SPP-варианты | UART | прошивка и команды могут отличаться от HC-05/06 |
Главный вопрос: телефон видит модуль как «последовательный порт» или как BLE-устройство с сервисами? От этого зависит приложение, библиотека и формат обмена.
Главная идея
Модуль разделяет две стороны:
телефон <- Bluetooth радио -> модуль <- UART -> Arduino
Для Arduino HC-06 похож на обычный последовательный порт. Он не знает, что символ F означает «вперёд», а S — «стоп». Смысл байтов задаёт ваш скетч.
Bluetooth Classic и BLE
| Свойство | Classic SPP | Bluetooth Low Energy |
|---|---|---|
| Типичный учебный модуль | HC-05, HC-06 | HM-10, BLE-платы на ESP32 |
| Как выглядит обмен | поток байтов, похожий на Serial | сервисы и характеристики GATT |
| Для чего удобно | простой пульт, терминал, команды | датчики, настройки, экономия энергии |
| Частая ошибка | считать любой Bluetooth «UART» | ждать SPP там, где есть только BLE |
HC-06 удобен простотой: телефонное приложение отправляет символы, Arduino читает байты. BLE полезен в более современных проектах, но требует понимать модель GATT и UUID характеристик.
Подключение HC-06 к Arduino

Типичное подключение для учебного опыта:
| HC-06 | Arduino Uno | Комментарий |
|---|---|---|
VCC | 5V или 3.3V по модулю | многие платы HC-06 имеют стабилизатор, но проверяйте свой модуль |
GND | GND | общий провод обязателен |
TXD | пин 10 Arduino | вход программного UART |
RXD | пин 11 Arduino через делитель | вход модуля часто рассчитан на 3,3 В |
Если подключить модуль к аппаратным пинам 0/1, он может мешать загрузке скетча и Serial Monitor. Для учебного примера удобнее использовать SoftwareSerial.
Управление встроенным светодиодом через HC-06
Идея такая же, как в простом Bluetooth-роботе: программа читает один символ и выполняет действие. Только вместо моторов сначала управляем безопасным встроенным светодиодом.
#include <SoftwareSerial.h>
const int BT_RX_PIN = 10; // Arduino принимает TXD модуля
const int BT_TX_PIN = 11; // Arduino передаёт на RXD модуля через делитель
const int LED_PIN = LED_BUILTIN;
const long BT_BAUD = 9600;
SoftwareSerial bluetooth(BT_RX_PIN, BT_TX_PIN);
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.begin(9600);
bluetooth.begin(BT_BAUD);
Serial.println("HC-06 LED control ready");
Serial.println("Send 1 to turn LED on, 0 to turn it off");
}
void loop() {
if (bluetooth.available()) {
char command = bluetooth.read();
if (command == '1') {
digitalWrite(LED_PIN, HIGH);
Serial.println("LED on");
} else if (command == '0') {
digitalWrite(LED_PIN, LOW);
Serial.println("LED off");
} else {
Serial.print("Unknown command: ");
Serial.println(command);
}
}
}
Для мобильного робота вместо прямого управления моторами добавляют тайм-аут: если новые команды не приходят, робот останавливается. Светодиодный опыт нужен именно для проверки канала без риска.
Сопряжение и отладка
- Подайте питание на HC-06 и убедитесь, что индикатор мигает.
- Найдите модуль в Bluetooth-настройках телефона.
- Введите пароль из документации модуля, часто
1234или0000. - Откройте Bluetooth-terminal приложение.
- Отправьте
1и0, наблюдая встроенный LED и Serial Monitor. - Если ответа нет, проверьте
TX/RX, общийGND, скорость UART и уровень входаRXDмодуля.
Что запомнить про Bluetooth
- HC-06 и HC-05 обычно являются Bluetooth-UART мостами.
- UART между Arduino и модулем не равен самому радиоканалу Bluetooth.
- BLE-модуль может требовать совсем другое приложение и модель данных.
- Перед моторами сначала проверьте канал на светодиоде.
- Для робота нужна безопасная остановка при потере команд.
Практика
- Подключите HC-06 и управляйте
LED_BUILTINсимволами1и0. - Измените команды на
AиB, чтобы убедиться, что смысл байта задаёт программа. - Запишите, какая скорость UART установлена у вашего модуля.
- Опишите, что должен делать робот, если команда не приходила 500 мс.
Проверьте себя
- Где заканчивается Bluetooth и начинается UART в схеме с HC-06?
- Почему BLE-приложение может не работать с HC-06?
- Зачем нужен делитель напряжения на вход
RXDмодуля? - Почему моторы нельзя бесконечно держать в последнем состоянии команды?
Сначала ответьте без подсказки. Ответ можно считать полным, если вы:
- формулируете основную мысль своими словами;
- называете важные условия, ограничения или меры безопасности;
- для схемы, кода или расчёта показываете ход решения и ожидаемый результат.
Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.
Словарь статьи
- Bluetooth Classic — семейство режимов Bluetooth, где SPP часто используют как беспроводной serial-порт.
- SPP — Serial Port Profile, профиль последовательного порта.
- BLE — Bluetooth Low Energy, вариант Bluetooth с сервисами и характеристиками.
- GATT — модель данных BLE.
- Сопряжение — связывание телефона и модуля с проверкой доступа.
Связанные темы
- USB-TTL — как проверить UART-сторону модуля через компьютер.
- Wi-Fi — когда нужен веб-интерфейс или работа через сеть.
- Выбор способа связи — как сравнить Bluetooth с другими вариантами.
Источники
- Bluetooth SIG. Bluetooth Technology Overview.
- Bluetooth SIG. Serial Port Profile 1.2.
- Ni3nayka. Пример Bluetooth-управления роботом на Arduino.