Проблемы с последовательной связью от Arduino к Bluetooth HC-05

Я только что приобрел несколько Bluetooth-устройств HC-05 и, следуя инструкциям, перевел устройства в режим AT-команд, удерживая EN HIGH при включении HC-05. Когда я это делаю, HC-05 начинает «медленно мигать», показывая, что он находится в командном режиме. Однако, когда я отправляю "AT", я получаю в ответе нечетные символы.

Обратите внимание, что когда я набираю "AT", я получаю ровно 4 символа. Они просто не те символы «ОК», которых я ожидаю. Я также убедился, что последовательная консоль Arduino IDE отправляет символы NL и CR.

Кстати, вот авторская программа установки Мела Патрика HC-05, которую я запускаю:

https:/ /raw.githubusercontent.com/dmccreary/coderdojo-robots/master/src/bluetooth-remote/hc-05-setup/hc-05-setup.ino

Проблема с серийным номером HC-05

Было высказано предположение, что данные от HC-05 поднимаются только до 3,3 В, и это может быть причиной проблемы, поскольку Arduino ищет сигнал 0–5 В.

Я также заметил, что когда я удаляю линию TDX из HC-05, ответы не возвращаются. Поэтому я подозреваю, что он получает «AT» через RTX от Arduino к HC-05. Это просто какая-то проблема с форматом возвращаемых данных.

Есть ли простая транзисторная схема, которую я могу подключить для смещения уровней обратно от 0 до 5 вольт с 0 до 3,3 вольт?

Я также использую Arduino Nano, если это имеет значение.

Спасибо, Дэн

, 👍0

Обсуждение

Как он подключен? Используете ли вы аппаратное или серийное программное обеспечение? У вас установлена правильная скорость передачи данных?, @Majenko

Я правильно подключил соединения RTX и TDX и установил правильную скорость передачи данных. У меня есть еще один с аналогичными соединениями, который работает нормально, но я до сих пор не понимаю, почему это устройство выходит из строя. У меня есть три теории. 1) В этом устройстве были установлены неправильные значения по умолчанию, и они были изменены обратно при сбросе, 2) или уровни напряжения не работали. или 3) у меня плохой провод..., @Dan McCreary

Вот текущий диалог: Программатор Bluetooth HC-05 1. АТ тест а. Установить имя устройства (a, имя) 2. Версия б. Установить роль (b,0) 3. Адрес c. Установить пароль (c, 1234) 4. Имя д. Установите UART (d, Baud, Stop, Parity) 5. Роль м.б. Показать это меню 6. УАПП 7. Состояние 8. Пароль 9. Сброс устройства Синий - это то, что я набрал: 1 ХОРОШО 2 ХОРОШО +ВЕРСИЯ: 2.0-20100601 3 ХОРОШО +АДРЕС:98d3:31:fb1d15 4 ХОРОШО +ИМЯ:t 5 ХОРОШО +РОЛЬ:0 6 ХОРОШО +UART:38400,0,0 7 ХОРОШО +СОСТОЯНИЕ: ИНИЦИАЛИЗИРОВАНО 8 ХОРОШО +PSWD:1234 ХОРОШО а,DAN_ROBOT_1 ХОРОШО 4 +ИМЯ:DAN_ROBOT_1 ХОРОШО, @Dan McCreary

настраиваете серийный монитор на 38400 бод? это скорость по умолчанию в режиме AT, @Antony Santero

Странный char в последовательном мониторе возникает в 90% случаев из-за разницы в скорости между Arduino и Serial Monitor. Для правильного отображения Arduino (так Serial.begin), Serial Monitor и HC должны использовать одинаковую скорость. Я думаю, как ответил другой, скорость по умолчанию 38400. Но ОСТОРОЖНО: как только вы измените скорость (например, если вы измените ее на 9600), вы должны изменить ее на Arduino и последовательном мониторе., @Peter


6 ответов


0

Попробуйте установить скорость передачи данных 38400. Подключите Tx->Tx & Rx->Rx при настройке вашего модуля. Tx->Rx и усилитель; Rx->Tx во время выполнения.

,

Зачем нужно менять местами соединения?, @Code Gorilla

Я думаю, WaldoK смущает тот факт, что, если вы подключите что-то по TX/RX на Arduino, вы не сможете загрузить скетч. Так что, возможно, он думает, что ему нужно поменять местами соединения, когда на самом деле ему просто нужно отключиться во время загрузки., @Peter


0

Есть ли простая транзисторная схема, которую я могу подключить для смещения уровней обратно от 0 до 5 вольт с 0 до 3,3 вольт?

Да, есть схемы сдвига уровня, которые вы можете использовать, резисторные делители и все такое прочее, но вам будет лучше использовать правильную схему сдвига уровня, что-то вроде этого:

Сдвиг уровня

Я считаю, что это как-то связано со скоростью переключения между высокими и низкими уровнями и получением четких подъемов и спадов сигнала.

,

1

Если вы используете software serial для Bluetooth, вам необходимо установить скорость передачи данных, а скорость передачи данных по умолчанию для HC-05 составляет 38 400 бод.

Вы можете изменить эту скорость на желаемую с помощью AT-команды.

,

Это комментарий, а не ответ. Могу ли я предложить вам конкретизировать этот ответ, чтобы показать, как именно это делать?, @SDsolar


0

Установите скорость передачи данных 38 400 в последовательном мониторе.

Если у вас Arduino UNO со съемным Atmega328p - то удалите чип и подключите TX HC05 к TX Arduino и RX к RX.

Большая часть HC05 отлично работает с системой 5 В (у меня есть один, подключенный к 5 В, и RX, TX подключены напрямую (без переключателя уровня), но это не рекомендуется.

,

0

Если вы действительно получаете что-то после AT-команды, это означает, что у вас неправильная скорость передачи данных. Измените его с последовательного монитора на 38400 или что-то еще.

,

0

Мой опыт работы с этими устройствами...

  1. Скорость передачи данных различается, поэтому попробуйте их все.
  2. Некоторым нужны заглавные буквы, а другим все равно
  3. Некоторые ожидают знака вопроса после команды, а некоторые, например, AT?
  4. Для некоторых требуется CR, а для некоторых нет.
  5. Некоторые остаются в режиме AT только на секунду при загрузке, поэтому я обнаружил, что мне нужно настраивать его поэтапно, например, написать программу для установки PIN-кода, затем еще одну для установки NAME и т. д.

Причина этого в том, что на многих клонах не установлено полное программное обеспечение и команды.

,