Обмен данными между телефоном и ардуино при помощи модуля jdy-31

Тема в разделе "Проводная и беспроводная связь", создана пользователем UdalovPS, 9 июл 2021.

  1. UdalovPS

    UdalovPS Нуб

    Сложилась проблема. Подключил Bluetooth модуль JDY-31 ардуино нано через 0 и 1 порты на ардуино (Rx, Tx). Написал небольшой скетч в котором адруинка принимает данные при помощи Serial.available, Serial.read и выводит их при помощи функции Serial.println. Подключаю телефон через блютуз приложением Bluetooth terminal. Когда передаю данные через ком. порт компьютера то все работает и данные выводятся в телефон, но когда пытаюсь передать данные с телефона, то они никуда не передаются. Поправил дело тем, что подключил блютуз модуль к портам 3,4 и переписал скетч используя библиотеку SerialSoftware. Добавил 3,4 порты в объект mySerial и сделал чтение данных через mySerial.available и вывод данных через mySerial.println. После данных правок все работает. Могу посылать данные с телефона в ардуинку. Но главный вопрос с том, как сделать так, чтобы все работало именно через 0 и 1 порты (Rx, Tx) на arduino nano?<
     
  2. issaom

    issaom Гуру

    А ардуино то от чего запитана?
     
  3. UdalovPS

    UdalovPS Нуб

    Не имеет значения. Как от usb (питание от компьютера) так и от независимого питания 5v.
     
  4. SergeiL

    SergeiL Оракул Модератор

    RX нано соединен с TX USB преобразователя.
    TX нано соединен с RX USB преобразователя.

    Если данные передаваемые с компа видны на телефоне, значит:

    RX нано соединен с TX USB преобразователя и одновременно соединен с RX BT модуля.
    TX нано соединен с RX USB преобразователя и одновременно соединен с TX BT модуля.

    Если нужно чтобы нана передавала данные через BT модуль, нужно менять местами подключение TX и RX BT модуля к нано.
    Ну и смотреть, есть ли резисторы между выходами RX и TX МК на нане и RX и TX микросхемы USB-UART.

    Иначе два передатчика соединенные вместе будут мешать друг другу.
     
  5. a1000

    a1000 Гуру

    Пояснений от вас люди не добились, но как я подозреваю вы подключили и модуль JDY-31 и компьютер к апаратному UART ардуины. Как правильно вам объяснили
    После того как вы разнесли подключение
    естественно у вас всё заработало.
    Для "посмотреть" обмен вам ардуина даже и не нужна. Подключите JDY-31 через USB-UART переходник напрямую к компьютеру и смотрите через терминал.
     
  6. UdalovPS

    UdalovPS Нуб

    Как эту проблему побороть? Я заливал прошивку на ардуино, отключал её от компьютера через USB и запитывал через пин 5v. Но передавать информацию из usb модуля через пины ардуино 0 и 1 (Rx, Tx) так и не выходило. Поправила это только перепрошивка с библиотекой SerialSoftware и пины 3 и 4.
     
  7. a1000

    a1000 Гуру

    Разберитась немного с оборудованием.
    А платах ардуино разїём USB не только питание. Так-же там стоит конвертор USB-UART. Одним концом от подключен к USB разъёму, вторым к аппаратному UART микроконтроллера. А аппаратный UART как раз на пины 0 и 1 выходит. Так, что вы на одни и те-же пины пытаетесь повесить и модуль и компьютер. Возникает конфликт. Используя библиотеку SerialSoftware вы создаёте ещё один UART приёмо-передатчик с другими пинами. В вашем случае 3 и 4. Теперь данные с телефона через Bluetooth модуль попадают на пины 3, 4 и передаются через аппаратный UART на компьютер. Конфликта нет, всё работает.