Topic: Решение одной из проблем подключения bluetooth модуля НС-05
Жизнь не стоит на месте, технический прогресс постоянно подгоняет темпы модернизации давно известных устройств, поэтому и самая совершенная инструкция со временем теряет актуальность. Даже всем известное колесо проходит путь технического развития. Конечно, оно не меняет своей круглой формы, но приобретает усовершенствования - например подшипники ступицы, пневматические шины, легкосплавные диски и т.п.
Ну, инструкцию по применению колеса мы переписывать не будем, но внесём некоторые дополнения в техническую документацию по применению модуля HC-05.
Начнём с того, что подключение и проверка модуля в соответствии с рекомендациями по воплощению простейшего проекта "Мигаем светодиодом Arduino при помощи кнопки на смартфоне" http://remotexy.com/ru/examples/firstproject/ потерпели полную неудачу. Телефон устанавливал BT-соединение с модулем, но интерфейс не загружался. На экране приложения упорно появлялось окошко с диагностическим сообщением "Device not reply. Receive time out error".
Внимательный осмотр устройства HC-05 при помощи увеличительного стекла выявил надпись "LEVEL 3.3V" на обороте модуля, аккурат между выводами RX и TX.
Незамедлительно на макетной плате из резисторов номиналами 2 и 1 кОм были возведены два делителя напряжения - по одному для выводов RX и TX. Увы, ничего не изменилось. Дополнительные испытания подключения при помощи приложения для андроид Bluetoonh terminal выявили странную особенность: символы, передаваемые из ардуино в BT, имели вид нерасшифрованных значков - знаков вопроса, заключённых в ромбики. Это можно трактовать следующим образом: соединение было установлено, но два устройства Bluetooth явно пытались разговаривать на разных языках.
Как оказалось впоследствии, не на разных языках, а на разных скоростях. Просто с первого раза несведущему человеку догадаться об этом невозможно. Поэтому предварительно пришлось прокатиться на пробитом колесе по тернистому пути проб и ошибок.
Между тем, вымученная догадка оказалась правильной. Попавшийся мне модуль HC-05 по умолчанию был настроен на скорость обмена данными 38400 бод. Изменение скорости 9600 на 38400 в строке скетча, формируемого RemoteXY, сразу дало положительный результат. Вот эта строка: #define REMOTEXY_SERIAL_SPEED 9600 (должно быть #define REMOTEXY_SERIAL_SPEED 38400).
Обращаясь назад, необходимо заметить, что делителей напряжения для сигнальных выводов может быть не два. Достаточно только одного делителя для RX вывода модуля HC-05. Вывод TX подключаем перемычкой к назначенному или аппаратному (как решите) выводу RX ардуино.
Кроме того, дальнейшие испытания показали, что для урока RemoteXY по миганию светодиодом можно вообще обойтись без делителя. Работает по непонятной пока причине.