HC 05 и программа bluetooth Terminal для Androida ПРОБЛЕМА!
- Войдите на сайт для отправки комментариев
Добрый день!
Использую вот этот блютуз модуль HC 05 http://arduino.shopium.ua/products/bluetooth-hc-05/
плата ARDUINO UNO и программа Bluetooth Terminal установленная в телефон на Андроиде.
Модуль подключен следующим образом:
Arduino HC 05
RX ---------------- TX
TX ---------------- RX
3,3V ---------------- 3,3V
GND ---------------- GND
Скетч написан для зажигания светодиода , подключенного к 12-ой ноге Arduino. Ниже привожу скетч:
char incomingByte; // входящие данные
int LED = 10; // LED подключен к 12 пину
void setup() {
Serial.begin(9600); // инициализация порта
pinMode(LED, OUTPUT);
Serial.println("Press 1 to LED ON or 0 to LED OFF...");
}
void loop() {
if (Serial.available() > 0) { //если пришли данные
incomingByte = Serial.read(); // считываем байт
if(incomingByte == '0') {
digitalWrite(LED, LOW); // если 1, то выключаем LED
Serial.println("LED OFF. Press 1 to LED ON!"); // и выводим обратно сообщение
}
if(incomingByte == '1') {
digitalWrite(LED, HIGH); // если 0, то включаем LED
Serial.println("LED ON. Press 0 to LED OFF!");
}
}
}
Суть проблемы. По последовательному порту управление светодиодом проходит замечательно( при отправке "1" диод загорается, а при отправке "0" соответственно тухнет) При этом на телефон в Bluetooth Terminal поступают по блютузу сообщения о состоянии светодиода. С этим все нормально. Но вот при отправке "1 "либо "0" с программы телефона ничего не происходит!Создаётся впечатление что модуль HC 05 данные отправляет,а вот принимать их с телефона отказывается!!!Делал все по этим рекомендациям http://cxem.net/arduino/arduino63.php Разница в том что они используют HC 06 и Arduino NANO. Там внизу описание для Андроида и видео приложено!Все повторил и столкнулся с такой проблемой!
Сделайте что-то по проще.
Отправте что-то из терминала - должно возвратится то же самое что и отправили.
А еще... вот эти модули - вернее (модуль+адаптер) - таки часто бывают бракованные партии.
А еще предупрежу, не знаю как у вас (в инете не видел про это упоминание), но столкнулся с тем, что...
Модуль трех-вольтовый. А дуина 5v. Собственно для того адаптер и нужен. Согласовать. И он делает это, но только для RX,TX (по крайней мере который у меня).
А вот пин Key - не имеет согласования. Ведет прямо к модулю. И выдача туда 5v с дуины (что-бы войти в коммандный режим) - может упалить модуль. ПОэтому лучше кей либо тоже руками подключать к 3.3v конда нужно настройки крутить или, если програмно требуется - делать согласование.
Вот такая подлянка от дедушки Ляо.
А и да, пнуть забыл ;) Вставка программного кода в тему/комментарий
За вставку кода не знал)))Писал на горячую)))Попробовал Ваш совет
Получаю в ответ данные ,посланные, через последовательный порт. С телефона не получается , хотя в телефон данные приходят по блютузу. Питаю модуль от 3,3 V от платы Ардуино. KEY не использую.
>Получаю в ответ данные ,посланные, через последовательный порт.
Значит последовательный порт у вас работает :)
> С телефона не получается ,
Отключите RX, TX от дуины. И замкните их межу собой (вообщем оставте модулю только землю и питание).
Послыйте - должно вернутся то же самое.
> хотя в телефон данные приходят по блютузу
Немного не понятно. Откуда и какие данные. Воообщем чуть подробней на основании чего вы делаете это утверждение?
>Питаю модуль от 3,3 V от платы Ардуино
Бывает что не хватает оттуда питания. Проверте что тестером какое там напряжение, особенно в момент передачи и пайринга. Иногда после собираения отдельного регулятора на 3.3V - глюки волшебным образом проходят.
Кстати - я так и не понял. У вас модуль или "модуль плюс адаптер"? Если адаптер, то многие из ниг - имеют у себя регулятор 3.3V на борту, и отдельный пин для питания от 5v. Если есть - лучше так питать.
Если у вас "голый модуль" (пинов нет, выглядит как "почтовая марка с бахрамой"), то вам, по хорошему нужно еще согласовавать 3.3v/5v для RX пина модуля.
>KEY не использую.
Ну я - просто предупредил :) Не вас, так кого-то другого может убережот.
Благодарю за помощь!!!Выявил причину!!!Проблема возникла из-за двойного сопротивления!!!Модуль мой HC 05 пришел ко мне уже с припаяной подложкой с токогасящими резисторами, по 1кОм-у на шину RX и TX. И так как на плате Ардуино Уно эти резисторы тоже предусмотрены, то получилось большое падение напряжения и ничего не работало. Припаялся в обход резисторов на модуле и все заработало как часы!!!!!!!!!!!!!
Хм... меня терзают смутные сомнения. Есть подозрение что модуль у вас-таки, " имеют у себя регулятор 3.3V на борту, и отдельный пин для питания от 5v", а вы туда не 5v дали, а 3.3V, в итоге - не хватало ему питания. Что-бы "протолкнуть сигнал эти резисторы", но они, все-таки, нужны при правильном питании.
>припаяной подложкой с токогасящими резисторами,
То есть у вас, все-таки модуль+адаптер?
Можете зафоткать свой модуль? Есть у него свой собственный регул питания?
Или вот щас, ничего не меняя, тестером проверте что у него на 12-том пине образовалось?
Именно вот в этом месте, а не на пине VCC куда питание даете.
кстати у меня на таком-же модуле такая же проблема. Я уже и незнаю что делать... В ПК передает, а принимать не хочет. У меня ардуина Мега 2060. И по ходу если припаяны резюки по RX TX на модуле и на ардуине, то не связь вообще не дожна идти не в одну из сторон
а еще обычно у БТ-модулей скорость обмена по умолчанию 38400 (это так, к сведению).
ну у моего по умалчиванию 9600. На АТ-комманды никак не хочет отвечать, что толь ко не делал... Уже есть мысть спаять программатор и перешить его. Может проблема в прошивке?
так если на команды не желает отвечать - значит и не работает нормально.
Уберите ардуину при взаимодействии с компом. Имхо, пока не будет ответов на АТ-команды - ничего не будет.
Кстати, где написано, что у вашего модуля по умолчанию именно 9600? (просто совсем недавно гуглил эту тему - все пишут про 38400)
Я модуль подключаю не к ардуине а через конвертор RS-232 to TTL к COM порту
У меня модуль с адаптером(так сказать с подложкой) .Друзья, я припаялся в обход резисторов адаптера и все работает!!!Управляю сервой с Андроида, получаю данные с датчика температуры и т.д. По просьбе leshak сделал фотки своего модуля и подключения, выложу позже.
У меня модуль с адаптером(так сказать с подложкой) .Друзья, я припаялся в обход резисторов адаптера и все работает!!!Управляю сервой с Андроида, получаю данные с датчика температуры и т.д. По просьбе leshak сделал фотки своего модуля и подключения, выложу позже.
Так а замеряли сколько у вас поступает на на 3.3 вход модуля? Не адаптера, а именно модуля? Я вотку выше дал где поменярть нужно.
Есть сильнейшие подозрение что там с питанием проблема, а не с резисторами. И при нормальном питании - резисторы не помеха. На RX пине - резистор просто обязан быть. Так как модуль 3-х вольтовый, а дуина 5v выдает. И "напрямую" - можно модуль упалить. На TX - может и не быть (а может и быть, небольшого номинала, защитный).
на моем конверторе нету резисторов, собран он на CP2102. Модуль запитываю с конвертора тоже. Что примечательно. Если работаю через BlueSoleil то модуль отлично принимает данные посылаемые с ПК, но не отправляет ничего обратно. Конвертор USB-TTL рабочий.
Когда подключаюсь к ПК встроенными виндосовскими средствами, то после соединения, модуль постоянно принимает повторяющуюся последовательность где-то из 20байт.
Учитывая, что модуль не хочет отвечат на комманды, и не передает данные в ПК могу предположить что проблема с RX модуля HC05?
а посмотри в мониторе порта - идут команды или нет?
могу предположить, что там нету команд 0 и 1 а их коды символов
из-за этого и не работает
>Если работаю через BlueSoleil то модуль отлично принимает данные посылаемые с ПК, но не отправляет ничего обратно
Не очень понятно "кто куда посылает". Модуль-то может "принимать" и отсылать через два интерфейса: "по воздуху" и "через Rx/Tx".
Через что именно он "принимает" и через что именно "отсылает"?
Если на самом модуле замкнуть RX, TX - есть возврат в терминале если ему слать что-то по блюпупу?
А вообще у меня с этими модулями примерно такой опыт:
1. Взял HC-05, его упорно даже в эфире небыло видно. При попытках реанимировать - умучал его намертво (оторвал дорожку отпаивая его от адаптера). При этом еще пин RX адаптера на модуль начал "звонится напрямую" (вообщем сам собой образовался "в обход резистора"). Выглядел он в точности как модуль из статьи (коорый справа, синенький).
2. Отзвонился продавцу - он подтвердил что "были жалобы" и "уже заказал другую партию".
3. Пока ждал - взял у знакомого такой же модуль, только HC04. Визуально отличался только тем что пины STATE/KEY отсуствовали. Этот в эфире был виден, пайрился с ним, но... на RX/TX - полная тишина.
4. Пришла замена моего HC-05. Визуально от изначального отличался тем, что вместо пина STATE добавился пин 3.3V (и VCC теперь подписан как 5.5V). Ну и порядок пинов - чуть другой. Так же на брюхе (с той стороны где где подписи пинов) - появились два дополнительных резистора и наклейка "Q.C.Passed" . Этот завелся сразу. Без каких-либо проблемм. В командный режим вводил его соединяя проводком KEY пин, с его же пином 3.3V
5. Тестером промерял - RX/TX идут через резисторы, не напрямую. Есть согласование. А вот KEY - напрямую. Написал продавцу, предупредил что "возможно так эти модули горят". Через какой-то время он подтвердил "может быть, более того резистор для KEY пина есть на адаптере, но.... он нулевого номинала" (вообщем загадки китайской философии).
Итого: HC-05 дешево и сердито, но "лотерея". Причем, как мне кажется скорее имено в адаптере/подложке, чем самом модуле. То есть если брать "голый модуль" и самому все согласовывать - все должно быть более надежно.
P.S. Думал, но решил все-таки дать ссылку на продавца http://arduino.shopium.ua/ . Все-таки отзыв "кто вменяемый" - полезная инфа. Не гарантирую что "всегда так", но мне он заменил модуль "просто поверив на слово", хотя я совершенно не расчитывал на это (к тому моменту он уже явно был в не товарном виде из за моих ручек), да еще и выслал замену за свой счет (первый я забирал самовывозом).
Дениз, можете подсказать как именно вы обошли сопротивления ?
Привет всем!
Уже третий день мучаюсь с модулем HC-06, за все время удалось подключиться к ардуине один раз с примитивным скетчем. Далее при тех же попытках, от модуля тишина, хотя без ардуины с телефоном адекватно обменивается при замыкании rx tx.
После замеров напряжения на пинах питания без подключения rx tx напряжение 3.3 в, подключение rx ничего не меняет, но стоит подключить tx, напряжение на пинах питания HC 06 скачит от 3.5 до 4.5 вольт.
Подложка заводская, у кого были подобные симптомы? Лечить своей схемой питания или есть идеи попроще?))