Zs 040 Bluetooth соединение Arduino

Обновлено: 21.11.2024

Это работа в процессе. Я работаю над тем, чтобы модули Bluetooth работали с Arduino и Raspberry Pi, и я тестирую их на компьютере с Linux. Многие люди, тестирующие модули Bluetooth, используют устройства Android или iPhone, или подключают устройства Bluetooth, такие как мыши и клавиатуры, к системам Linux. То, что я пытаюсь сделать, кажется относительно необычным.

Классический Bluetooth и Bluetooth Smart, также известный как Bluetooth LE (с низким энергопотреблением)

(Примечание. "Классический" Bluetooth относится к версиям ниже 4.0; BLE – к версиям ниже 4.0 и выше.) Я не буду вдаваться в различия между ними, за исключением того, что если вы используете Низкий Energy (BLE), то оба конца соединения должны быть в состоянии справиться с этим. У меня есть старый USB-ключ, который не поддерживает BLE, и более новый, который поддерживает. Если я подключаюсь к модулям BLE, мне нужен ключ с поддержкой BLE.

Модуль Bluetooth LE

Я купил модуль Bluetooth на eBay, и там много подобных. Некоторые идентифицируют себя как HM-10. Мой выглядел так:
Задняя часть выглядит так:

ЗС-040 является общим для многих из них. Устройство указывает, что VCC может быть от 3,6 до 6 В, однако линии RXD и TXD работают с логическими уровнями 3,3 В независимо от VCC.

При ближайшем рассмотрении видно, что используется набор микросхем производства Texas Instruments, а именно CC2541.

Подключения Arduino


Выводы EN и STATE остались неподключенными.
Поскольку Arduino Uno представляет собой устройство на 5 В, делитель напряжения на RXD был использован для предотвращения перенапряжения на выводе.

Эскиз Arduino

Эскиз Arduino, который я использовал, был очень простым:

Тестирование Linux

Сначала проверьте, можете ли вы найти ключ Bluetooth на компьютере:
Теперь вы можете проверить состояние устройства: последняя строка выше указывает на то, что интерфейс не работает. Чтобы изменить это: Обратите внимание, что ключ изначально настроен как ведомый. Если мы хотим изменить его на мастер: Обратите внимание, что теперь он настроен как мастер. Информации много, в том числе и производитель.
Теперь, когда устройство работает, мы можем искать устройства BLE в окрестностях: Появляется одно устройство. Он идентифицирует себя как MLT-BT05. Мы можем узнать больше об устройстве: (Как упоминалось выше, производитель чипсета указан как Texas Instruments.)
Поддерживает ли ключ BLE? Вышеуказанный нет. Делает следующее: Все команды LE в конце указывают, что этот ключ поддерживает BLE.

Есть несколько команд, которые hcitool имеет специально для устройств BLE.
Для подключения к устройству:
Вы должны увидеть, что ранее мигающий светодиод на модуле теперь продолжает гореть, указывая на подключение.

Чтобы отключиться от устройства:

Чтобы отслеживать трафик с удаленного устройства: строка 74 65 73 74 переводится в ASCII как test (за которой следует возврат каретки ( 0D) перевод строки (0A)), который был отправлен с Arduino вместе с модулем.

Тестирование Linux с помощью bluetoothctl

bluetoothctl — это альтернативный инструмент Linux для тестирования Bluetooth. Обратите внимание, что он работает в интерактивном режиме.
Найти локальный контроллер: Поиск удаленных устройств: Подключиться к удаленному устройству: Подсказка изменилась на имя подключенного устройства.
Отключение аналогично: приглашение вернулось в свое неопределенное состояние.
Если устройство уже подключено при запуске программы, в приглашении будет указано следующее: Существует множество команд:
Команда info возвращает информацию об удаленном устройстве.

AT-команды для модуля

Вы можете увидеть, какие AT-команды поддерживает это устройство (используя AT+HELP):


Опубликовано 4 октября 2014 г. Обновление: Если у вас есть модули с синим светодиодом в верхнем левом углу, значит, у вас более новая модель с немного другим программным обеспечением, хотя они должны работать одинаково.
Я недавно купил несколько модулей Bluetooth HC05 и HC-06. Это довольно стандартно, особенно при использовании с Arduino, и я был удивлен тем, насколько легко было заставить работать базовую последовательную связь. Доступно несколько немного отличающихся модулей. Те, что у меня есть, имеют маркировку zs-040.Платы zs-040 отличаются от некоторых других модулей тем, что они имеют контакт EN, а не контакт KEY.

В HC-05 zs-040 и HC-06 zs-040 используется одна и та же разделительная плата (даже одинаковая трафаретная печать), но есть некоторые заметные различия:
– HC-06 не имеет кнопочный переключатель
– у HC-06 только 4 контакта заголовка
– у HC-06 нет подключенных контактов 31-34
У них также разные прошивки. HC-05 может быть ведущим или ведомым. HC-06 — только ведомое устройство. Это означает, что HC-05 может инициировать соединение с другим устройством, а HC-06 может принимать соединение только с другого устройства.
Платы основаны на модулях Bluetooth EGBT-045MS/EGBT-046S, которые загружены прошивкой SPP для связи по UART.

Технические характеристики модулей Bluetooth EGBT-045MS/EGBT-046S

Радиочип: CSR BC417.
Память: внешняя флэш-память 8 Мбит.
Выходная мощность: от -4 до +6 дБм, класс 2. до 3 Мбит/с
Интерфейс: UART
Антенна: Встроенная
Размеры: 27 Ш x 13 В мм
Напряжение: от 3,1 до 4,2 В пост. Насколько я могу судить, модули EGBT-045MS и EGBT-046S имеют одинаковое аппаратное обеспечение, и единственная разница заключается в прошивке. Однако разные прошивки меняют распиновку.

Коммутационные платы zs-040 включают в себя регулятор напряжения 3,3 В, что позволяет платам принимать VCC от 3,6 до 6 В на основной контакт/разъем VCC. Тем не менее, на контакты RX и TX по-прежнему подается напряжение 3,3 В.
Arduino будет принимать 3,3 В в качестве ВЫСОКОГО сигнала, поэтому контакт TX HC-05/06 (выход) можно напрямую подключить к 5 В Arduino. Контакт HC-05/06 RX (in) не может принимать 5 В и не должен подключаться напрямую к Arduino. Прямое соединение будет работать в течение короткого времени, но оно повредит небольшой модуль синего зуба, и в конечном итоге вы убьете контакт RX. 5V от Arduino необходимо каким-то образом уменьшить, и простой способ сделать это — использовать делитель напряжения, сделанный из 2 резисторов. Обычно я использую резистор на 1 кОм и резистор на 2 кОм.

Подключения к разделительной доске

На изображении ниже показаны основные дорожки/соединения на коммутационной плате zs-040, и, как вы можете видеть, для совместимости с различными прошивками некоторые контакты были соединены вместе.

У HC-06 нет контактов EN и STATE.

След между контактами 31 и 24 на коммутационной плате связывает контакт светодиода состояния на EGBT-045MS с контактом светодиода состояния на EGBT-046S. Затем соединение идет к реальному светодиоду на коммутационной плате. Соединение между контактами 31 и 24 позволяет использовать одну и ту же коммутационную плату как для EGBT-045MS, так и для EGBT-046S

Кнопка переключения

Кнопочный переключатель подключает VCC (3,3 В) к контакту 34 и используется для перевода EGBT-045MS / HC-05 в режим AT. Есть 2 режима АТ, я называю их «мини-режим» и «полный режим». Кратковременное нажатие на кнопочный переключатель переводит модули в мини-режим, и не все команды работают. Удержание переключателя в замкнутом состоянии переводит модули в режим полного АТ, в котором работают все АТ-команды. Отпускание переключателя возвращает контакт 34 LOW.
Подробнее о AT-командах см. Arduino с модулем Bluetooth HC-05 (ZS-040) — AT MODE
Большинство модулей HC-06 не имеют кнопочного переключателя (место пусто) и вывода 34 HIGH на HC-06 ничего не делает.

Пин-код СОСТОЯНИЯ

На приведенной выше фотографии видно, что контакт STATE подключен к контакту 32 и контакту 25 маленьких модулей с синим зубом. Контакт 32 — это светодиод 2 на EGBT-045MS/HC-05. Контакт 32 имеет НИЗКИЙ уровень, когда модуль не подключен, и ВЫСОКИЙ уровень, когда модуль подключен. Это дает нам простой способ определить, действительно ли HC-05 подключен или нет. Подключите контакт STATE к цифровому контакту Arduino, и если digitalRead() возвращает HIGH, вы знаете, что модуль имеет активное соединение. Вы можете, конечно, подключить светодиод к выводу STATE в качестве визуального индикатора соединения.
Я еще не пробовал это на HC-06, но, поскольку это не упоминается в руководстве, я полагаю, что оно не активно.

Введение: Arduino Bluetooth, часть 1 — модули Bluetooth

Этот проект направлен на создание канала удаленного управления между двумя Arduino с использованием Bluetooth для связи. В части 1 будет рассмотрено, как настроить модули BT. Лучше всего прочитать эту часть перед тем, как начать, если вы уже не знакомы с модулями BT.

Почему БТ? Bluetooth дешев и надежен. Модули маленькие, потребляют очень мало энергии и работают прямо из коробки. Они просты в использовании, так как в основном просто заменяют последовательный кабель. (Однако новая версия Bluetooth, такая как Bluetooth Smart, работает совсем по-другому.)

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

Я использую Arduino Uno и Nano (подойдет любой Arduino), модули Bluetooth с маркировкой ZS-040 и ПК с Windows, подключенный через USB-кабель.

Имейте в виду, что существуют различные модули Bluetooth, и некоторые из них работают немного иначе, чем мой.

ZS-040 — это Bluetooth-устройство класса 2 с радиусом действия около 10 метров. (Не используйте его для моделей самолетов!) Это часто поставляемый модуль, который вы должны иметь в наличии.

Шаг 1. Что нам нужно

Для работы над этим проектом нам нужно:

Два Arduino, в идеале один Nano для удаленного устройства.

Два модуля Bluetooth. Я использую два ZS-040, оба типа HC-05. Вместо этого я мог бы взять один HC-05 и один HC-06.

2 резистора номиналом примерно 1K

2 резистора номиналом примерно 2K

Две макетные платы, чтобы на одной можно было установить главную, а на другой — подчиненную.

Перемычки разных цветов.

ПК с загруженной Arduino IDE

USB-кабели для плат Arduino.

Мобильный телефон или другое устройство с поддержкой Bluetooth

Шаг 2. Проверьте модуль Bluetooth

Для тестирования модуля BT я могу использовать любое устройство Bluetooth, такое как мобильный телефон или блокнот, которое поддерживает Bluetooth. Я использую планшет Android.

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

Включите модуль BT, подключив 5 В к контакту VCC и заземление к контакту GND.

При подключении USB-кабеля к компьютеру должен загореться светодиод на плате Arduino.

Светодиод на модуле BT должен быстро мигать.

Включите устройство Android и найдите доступные устройства Bluetooth. Вы должны найти имя вроде HC-05 или HC-06. Вы также можете увидеть 12-символьный идентификатор BT модуля. Это будет выглядеть как 12:34:56:78:9A:BC или подобное. Запишите этот номер для дальнейшего использования.

Выполните сопряжение с этим устройством, используя пароль 1234. Это пароль по умолчанию, поэтому он должен работать на новом модуле BT.

Если все в порядке, ваш модуль BT работает нормально, и вы знаете, какого он типа. На данный момент он настроен как ведомое устройство.

Для связи по Bluetooth требуется один модуль, настроенный как «ведущий», а другой — как «подчиненный». HC-05 работает как ведущий или ведомый, а HC-06 работает только как ведомый. Там, где я нахожусь, они продают только HC-05, и это нормально, поскольку они сделают любую работу.

Шаг 3. Подготовьтесь к приему данных с Bluetooth-устройства

Я отсоединил USB-кабель, а затем добавил в цепь несколько проводов и резисторов.

Я подключил контакт TX на модуле BT к контакту D2 на Arduino (зеленый провод на картинке).

Я подключил контакт RX модуля BT к контакту D3 на Arduino (белый провод на картинке).

Приемник подключается через делитель напряжения. Это два резистора, где один резистор имеет удвоенное значение другого. Это снижает напряжение сигнала от Arduino с 5 В до 3,3 В

На моем модуле указано напряжение питания 3,6–6 В. Это указывает на то, что модуль имеет встроенный регулятор напряжения для подачи необходимых 3,3 В. Регулятору напряжения всегда требуется немного больше, чем подаваемое напряжение, так как это вызывает падение напряжения питания.

Затем получите программу для мобильного телефона или планшета, которая может отправлять значения данных в модуль BT.

Я загрузил это на свой планшет и установил.

Шаг 4. Обратите внимание на делитель напряжения

Точное значение резисторов не имеет решающего значения, главное, чтобы сопротивление верхнего составляло половину сопротивления нижнего.

1K и 2K дают представление о подходящем размере. Ток почти отсутствует, поэтому мощность резисторов может быть минимальной, можно использовать резисторы очень малых размеров.

Шаг 5. Скопируйте Sketch в Arduino и подключитесь

Скопируйте программу BT_talk на компьютер и откройте ее.

Эскиз можно проверить и загрузить на плату Arduino.

Запустите Serial Monitor, и он должен сказать, что плата Arduino готова.

На своем планшете я подключился к модулю BT, а затем запустил программу, которую установил ранее.

Когда я нажимаю кнопки управления на экране планшета, на последовательном мониторе появляются 1 и 0.

Если вы не получаете данные, проверьте следующее:

Последовательный монитор настроен на "Оба NL и CR" и работает на частоте 9600

Убедитесь, что мобильный телефон/планшет подключены через Bluetooth

Проверьте проводку на плате, особенно соединения tx и rx

Вложения

Шаг 6. Скорость связи

Теперь у меня есть планшет, отправляющий данные в модуль BT, который отправляет их на Arduino, который отправляет их на ПК.

Важно правильно настроить связь для каждого шага, иначе данные будут зашифрованы.

Связь между Bluetooth-устройствами происходит автоматически, поэтому нам не нужно ничего делать. Связь от модуля BT к Arduino по умолчанию имеет значение 9600. Связь от Arduino к ПК также имеет скорость 9600, и это нормально для наших целей.

Скорость связи можно установить в программе Arduino,

Serial.begin(9600); //устанавливает скорость между Arduino и ПК.

BTserial.begin(9600); //устанавливает скорость между Arduino и модулем Bluetooth.

Скорости Serial и BTSerial могут не совпадать.

Шаг 7. Измените настройки в модуле BT

Внутренние настройки модуля BT можно изменить, переведя модуль в так называемый "режим AT". Это позволяет мне изменять параметры, хранящиеся внутри модуля.

Было бы полезно дать модулям разные имена, если у вас одновременно подключено несколько модулей. Мастер может подключаться к 7 ведомым устройствам, хотя я собираюсь подключить только 1.

Если на модуле BT есть кнопка рядом с контактом EN, ее можно использовать для настройки режима AT. В противном случае это можно сделать с помощью куска провода, касающегося контакта 34 модуля BT.

Чтобы перевести модуль в режим AT, нужно удерживать кнопку модуля при подаче питания на модуль, а затем отпустить кнопку.

Если кнопки нет, можно подключить провод к контакту 34, пока питание подается на модуль BT, а затем удалить провод. Я добавил еще один провод, подключенный к контакту Arduino 3.3V (желтый на картинке).

Когда модуль находится в режиме AT, светодиод медленно мигает, примерно раз в две секунды.

Шаг 8. Включение и выключение модуля BT

Просто потянув за провод питания 5 В, вы отключите питание модуля, пока Arduino все еще работает.

Если нажать его обратно, модуль включится.

Шаг 9. Включение режима AT с помощью провода

Отключите питание модуля, потянув за перемычку.

Прикоснитесь оголенным концом желтого провода 3,3 В к контакту 34 модуля BT. Это самый верхний контакт на стороне EN модуля. Я использую модули ZS-040 BT.

Пока провод касается контакта 34, снова подключите провод питания, затем отсоедините желтый провод. Светодиод на модуле BT должен медленно мигать.

Шаг 10. Изменение настроек Bluetooth

После того, как модуль находится в режиме AT (Внимание), его можно запросить из последовательного монитора.

Загрузите программу BT_config.ino в Arduino и запустите ее. Откройте серийный монитор. Обратите внимание, что в режиме AT скорость модуля BT по умолчанию составляет 38400 при обмене данными с Arduino.

Введите заглавные буквы в последовательном мониторе

В

и вы должны получить ответ

Если вы не получили ответ, отключите питание модуля BT и снова подключите его, если модуль завис. Перезапуск Serial Monitor также может помочь решить проблемы. С проводкой, вероятно, все в порядке, так как она работала в предыдущем упражнении.

Обратите внимание, какой COM-порт используется для USB-подключения.

Попробуйте следующее диалоговое окно, в котором ваши записи выделены жирным шрифтом, а ответы от модуля BT показаны после них:

В

AT+РОЛЬ

+ROLE:0 (ROLE 0 – подчиненная, а ROLE 1 – главная)

AT+ИМЯ

Мне не ответили. Пока он не сообщает об ошибке, это, вероятно, хорошо.

AT+NAME=MOD01

AT+NAME (Если ваш модуль отвечает на команду, вы можете проверить имя.)

Отключите питание от модуля BT и снова подключите. Индикатор BT должен снова быстро мигать.

Теперь, если я ищу модуль с помощью своего планшета, я нахожу модуль под названием MOD01.

Теперь я знаю, как разговаривать с модулем и менять в нем настройки.

До сих пор планшет подключался к модулю BT. В следующей части я заставлю два модуля общаться друг с другом.

Вложения

Шаг 11. О программе BT_Talk

Когда я подключаю USB-кабель от своего ПК к Arduino, устанавливается последовательный канал связи. Скорость соединения отображается на мониторе последовательного порта, и программа настроит Arduino на работу с той же скоростью. Это цель

Serial.begin(9600);

Этот канал связи использует цифровые порты 0 и 1 для приема и передачи.

Теперь нам нужно настроить канал последовательной связи между модулем BT и Arduino. Это должно быть на разных контактах, чтобы ПК и модуль BT не пытались взаимодействовать с Arduino по одному и тому же соединению.

загружает некоторое программное обеспечение, которое позволяет нам настроить дополнительные последовательные порты. Помещение

SoftwareSerial BTSerial(2,3);

создает новую инструкцию BTSerial, которая работает так же, как инструкция Serial, но использует контакты 2 и 3 для rx и tx. Поэтому, когда программа использует Serial, она взаимодействует с Serial Monitor, а когда она использует BTSerial, она взаимодействует с модулем BT. Мне нужно указать, на какой скорости Arduino должен взаимодействовать с модулем BT, поэтому я установил скорость связи BT по умолчанию 9600,

BTSerial.begin(9600);

Когда модуль BT получает данные, он буферизует их и ждет, пока подключенное устройство запросит их.

BTSerial.available() имеет значение true, если есть ожидающие данные и

c = BTSerial.read();

помещает буферизованные данные в переменную c, которая затем отправляется на последовательный монитор с

Serial.write(c);

Цикл пытается прочитать модуль BT и записать в Serial Monitor, пока программа работает.

Arduino может связываться с другими устройствами через Bluetooth с помощью модуля HC-05 (ведущий/ведомый). Это позволяет Arduino подключаться и обмениваться данными с другими устройствами, такими как смартфон, компьютер или другие микроконтроллеры. Связь Bluetooth может использоваться для удаленного управления роботом, отображения и хранения данных, например, на вашем компьютере или смартфоне.

Материал

  • Компьютер
  • Ардуино УНО x2
  • USB-кабель
  • Модуль Bluetooth HC-05 ZS-040 x2 (или 1x HC-05 и 1x HC-06)
  • Кабели Dupont M/F

Обзор модуля HC-05

Модуль Bluetooth HC-05 имеет 6 контактов: 2 для питания, 2 для установления соединения, 1 для входа в режим настройки, а другой для определения состояния соединения.

  • Электропитание VCC. Обычно подключается к 5-вольтовому контакту Arduino.
  • Заземление. Обычно подключается к контакту GND Arduino
  • Контакт приема RX. Обычно подключается к контакту передачи (TX) Arduino
  • Контакт передачи TX. Обычно подключается к приемному контакту (RX) Arduino
  • Состояние ВЫСОКОЕ, когда модуль подключен.
  • Кнопка ou EN должна быть установлена ​​на ВЫСОКИЙ уровень (3,3 В), чтобы войти в режим конфигурации, и должна быть отключена, чтобы войти в режим связи.

Особенностью HC-05 является то, что его можно использовать как подчиненный модуль (эквивалент HC-06) и как ведущий модуль, что означает, что он может самостоятельно подключаться к другому устройству.

Схемы настройки


ВНИМАНИЕ :

  • Мы используем контакты 2 и 3 платы Arduino Uno. В зависимости от микроконтроллера некоторые выводы могут не поддерживать связь SoftwareSerial. Особенно Arduino Mega, Micro и Leonardo. Проверьте документацию.
  • Поскольку модуль Bluetooth использует логику 3,3 В, рекомендуется добавить делитель напряжения, чтобы уменьшить напряжение 5 В от Arduino. (резистор 1 кОм между контактом 3 и Rx; 2 кОм между Rx и GND).

Конфигурация модуля HC-05

Настройка модуля HC-05 может быть интересной, чтобы убедиться, что он работает, правильно подключен и изменить его параметры, такие как его имя (полезно, когда вы используете несколько модулей), PIN-код и скорость связи (скорость передачи). Особенно, если вы хотите использовать его в качестве основного модуля. Чтобы разрешить настройку, модуль HC-05 должен быть запитан, но не сопряжен, а контакт KEY/EN должен быть установлен в состояние HIGH перед включением модуля. В режиме конфигурации светодиод будет мигать две секунды каждые две секунды.

Откройте последовательный монитор и выберите параметр конечной линии «Новая линия» и скорость 9600 бод.

Обратите внимание, что HC-05 входит в режим конфигурации со скоростью передачи 38400 бит/с.

Код конфигурации

Следующий код позволяет изменять и проверять параметры с помощью последовательного монитора и AT-команд.

AT-команды

По сравнению с модулем HC-06, HC-05 можно использовать в качестве главного модуля, и вы также можете проверять сохраненные параметры с помощью AT-команд.

Вообще, ввод команды AT+ ? запросит сохраненный параметр (например: AT+PSWD? покажет PIN-код модуля). Если вы введете AT+ =

можно установить значение параметра (например, AT+PWSD=0000, чтобы изменить PIN-код на 0000).

Вот некоторые из AT-команд:

  • Чтобы проверить связь, введите AT в последовательном мониторе Arduino IDE. Если все настроено правильно, должно отображаться OK.
  • Чтобы изменить имя модуля, введите AT+NAME=

Для модуля Bluetooth HC-05 существуют и другие AT-команды, которые вы можете найти по ссылке.

ВНИМАНИЕ: Существуют разные версии модуля HC-05, и процедура настройки может различаться. Перед использованием обязательно проверьте этикетку модуля и версию прошивки. В этом руководстве мы использовали модуль HC-05 с маркировкой ZS-040 и прошивку версии 2.0-20100601.

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

Не стесняйтесь оставлять комментарии или обращаться к нам, если у вас возникли проблемы с настройкой модуля HC-05.

Подчиненная конфигурация

Чтобы установить модуль в качестве ведомого, вы можете изменить имя на AT+NAME=HC05-Slave и выбрать параметры связи и PIN-код, которые вы хотите. Вам нужно убедиться, что у ведущего и ведомого устройства одинаковые параметры связи.

  • AT возвращает OK
  • AT+NAME=HC05-Подчиненный
  • AT+UART=9600,0,0
  • AT+ROLE=0
  • Введите AT+ADDR, чтобы получить адрес модуля (например, +ADDR:98d3:32:21450e)

В качестве подчиненного модуля вы также можете использовать модуль HC-06

Основная конфигурация

Чтобы установить модуль в качестве ведущего, необходимо изменить роль и установить тот же параметр связи, что и для ведомого модуля.

  • AT возвращает OK
  • AT+NAME=HC05-мастер
  • AT+UART=9600,0,0
  • AT+ROLE=1
  • Адрес ведомого модуля должен быть введен в ведущем модуле, чтобы он мог появиться: AT+BIND=98d3,32,21450e (замените точки «:» на запятую «,»)

Схемы коммуникации

В режиме связи контакт Key/EN не подключен.

Код связи

Когда оба модуля настроены, загрузите следующие коды на платы Arduino, подключенные к вашим модулям. Включите модули, чтобы войти в режим связи. Главный модуль должен подключаться к подчиненному модулю, и светодиод должен мигать каждую секунду.

Мы используем ту же библиотеку SoftwareSerial.h, что и для модуля HC-06:

  • SoftwareSerial hc05(Rx,Tx) для определения контактов последовательного порта
  • hc05.begin() для определения скорости передачи данных (значение должно совпадать с вашим модулем)
  • hc05.available() для проверки наличия данных в буфере модуля
  • hc05.read() для чтения данных по одному байту за раз
  • hc05.print() для отправки строки в формате ASCII
  • hc05.write() для отправки данных по одному байту за раз

Мастер-код

Подчиненный код

Если вы откроете оба последовательных монитора и введете команду на мониторе основной платы, вы должны увидеть следующие результаты. Основная плата отправляет команду, которая принимается и отправляется обратно подчиненной платой. Связь работает корректно в обоих направлениях.

Если у вас возникли проблемы с настройкой или сопряжением модулей Bluetooth, свяжитесь с нами или оставьте комментарий.

Приложение

Источник

Другие примеры и руководства можно найти в нашем Автоматическом генераторе кода
Code Architect

Насколько полезен был этот пост?

Нажмите на звездочку, чтобы оценить!

Средняя оценка 4,5 / 5. Количество голосов: 2

Пока нет голосов! Будьте первым, кто оценит этот пост.

Поскольку вы нашли этот пост полезным.

Следите за нами в социальных сетях!

Сожалеем, что этот пост не был вам полезен!

Давайте улучшим этот пост!

Расскажите, как мы можем улучшить этот пост?

Я пытался набирать AT-команды на arduino uno и lilypad (после загрузки этого кода), и это сработало, но у него есть проблема с arduino mega, «ENTER AT Commands:» написано на последовательном мониторе, но после того, как я отправил AT, он не выводится ничего, даже ошибки.

Здравствуйте!
Попробуйте другой набор булавок. Arduino Mega имеет другую совместимость контактов SoftwareSerial. В документации:
Не все контакты на Mega и Mega 2560 поддерживают прерывания изменения, поэтому для RX можно использовать только следующие: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53. , А8 (62), А9 (63), А10 (64), А11 (65), А12 (66), А13 (67), А14 (68), А15 (69).
Дайте мне знать, если это сработает

извините за поздний ответ, это сработало отлично, большое спасибо, и если у вас есть время, было бы очень полезно дать мне код для моего проекта, поэтому у меня есть простая кнопка включения / выключения на ведущем устройстве и светодиод на ведомом и я хочу включать и выключать этот светодиод с помощью этой кнопки, еще раз спасибо, я очень ценю это!

Нвм, я все равно сделал это, спасибо

Привет, я, ариф, на самом деле в самом магазине я по ошибке нажал кнопку сброса, и теперь он ничего не показывает, и я не могу подключить его к своему мобильному телефону…….. пожалуйста, ответьте и предложите мне решение для этого . Я жду вашего ответа. Спасибо

Какую кнопку сброса вы нажали? Arduino или модуль HC05? Можете ли вы выключить и снова включить его и посмотреть, изменится ли что-нибудь?

Могут ли оба контакта № 2 и 3 быть настроены как Tx. Поскольку мой мотив - подключить к модулю левый и правый динамики. Это будет работать ? или предложите решение/код для того же самого.

Оба могут быть настроены как Tx, но вам все равно нужно определить выводы Rx. Я никогда не пытался подключить два модуля Bluetooth к Arduino. Не лучше ли отправить оба канала через одно соединение Bluetooth?

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

Здравствуйте, модули подключены? Он что-то получает?

Нужна ли мне схема делителя напряжения при использовании Arduino Mega

Установка одинакова для Arduino UNO и Arduino Mega. Рекомендуется использовать делитель напряжения, но можно попробовать и без него.

Я думаю, что в коде ошибка. На схеме вы подключили контакт 2 к TX и контакт 3 к RX, но в коде вы установили их как

Привет, спасибо за вашу команду. Это не ошибка.
При последовательной связи микроконтроллер Rx (прием) подключается к модулю Tx (передача), а микроконтроллер подключается к модулю Rx.

Я все настроил, как описано в статье, но не могу установить связь между модулями. Индикаторы мигают вместе, указывая на то, что они сопряжены, все скорости передачи (включая hc-05) установлены на 9600, мастер скажет, что отправил все, что я набираю, в последовательный монитор, но от ведомого ничего не приходит, и я никогда не получаю ответ. Любая идея, почему это может произойти? Я пробовал разные комбинации вещей в течение 2 дней с этой штукой.

то же самое здесь. Я сделал все детали, но все еще не могу получить подчиненное сообщение.

Я тоже. Я не знаю, если это как-то связано с морганием. Я видел, что в другом видео один модуль моргал после того, как заканчивал мигать другой. Но в моем случае оба модуля практически одновременно мигают с очень небольшой, почти незаметной задержкой.

Читайте также: