Как правильно составить скетчи для передачи данных между двумя ардуино с jdy-40?
- Войдите на сайт для отправки комментариев
Здравствуйте, приобрел недавно пару модулей jdy-40, нужно составить шаблон для нормальной передачи данных между двумя ардуино, использующие jdy-40 в качестве приемника\передатчика, без участия ПК. Все подключил согласно этой схеме, cs на 3.3 в, set на земле (т. к. изменять стандартные параметры модуля не вижу смысла), tx-rx, rx-tx. (На двух ардуино - уно и нано).
Я никогда ранее не передавал данные между двумя ардуино по UART, ни по проводу, никак. Можете помочь, приведя шаблоны скетчей передачи данных для приемника/передатчика. Я пробовал сам изменить примеры из сети для передачи данных по проводу, но, как понимаете, ничего не вышло :) (руки потому что кривые и мозг не туда впихнут) Поможете?
См. SoftSerial Example.
Последовательный порт 'COM3' занят. Попробуйте выйти из программ, которые могут его использовать.
https://www.arduino.cc/en/tutorial/SoftwareSerialExample
Причем неважно, подключен ли jdy-40 или нет
Давайте так: я завяжу вам глаза, приведу в зоопарк и попрошу угадать, что за зверь сидит в клетке. У него есть хвост!
Вот сейчас в эту же самую позу Вы ставите всех нас.
подключение как на схеме, ардуино нано, при заливке скетча говорит, что порт занят, причем неважно, подключен модуль или нет, на других скетчах такого нет
строчки с 9 по 11 удалите, попробуйте снова
Скетч залился, в мониторе порта пишет "åþòüÿ", cs на земле, set на 5в.
На 57600 пишет "Goodnight moon!", на 4800 пусто, почему в примере скорости ставятся разные?
Потому что это два разных "канала". С одной стороны в первый softserial->jdy40 что-то должно запихиваться, а с другой из jdy40->softserial это что-то должно вылезать.
Потому что это порты разные.
yeee... вы чего хотели-то? - две арджуины соединить? - ну так скетч надо залить в две разных ардуины, с одной что-нибудь послать, на другую принять...
если ты в настройках модулей ничего не менял, поменяй 18 строчку на
mySerial.begin(9600);
Можно по разному. Например, с программным свитчем, но я предпочитаю ставить аппаратный. Тогда скетч один для приёмника и передатчика. Но два скетча - это дебилизьм, ИМХО.
Вроде разобрался, но есть проблемы. Модуль не хочет выходить в AT команды, ставлю set на землю, подключаю к ноутбуку, захожу в монитор порта, скорость монитора порта 9600 бод, NL & CR, пробовал заменить с софтверного сериала на аппаратный к выводам rx tx на самой ардуино, эффекта ноль. И при передаче данных нехило так зажевывает данные. При передаче с одной ардуины на другую "start", три показания с датчиков, "end" идет полнейшая чушь. Вместо start str, sar, и прочее, из трехзначного числа с датчика приходит лишь один или два, в общем, никуда не годится
Передатчик
Приемник
а на приемнике только этот код или вы выдрали его из большой программы?
Вообще подобный код у меня работал абсолютно стабильно...
Вот именно что только этот код приема и все! Не знаю, пробовал на разных расстояниях от пары сантиметров до 50 метров через стены, никаких закономерностей нет. Надоело бороться с этим модулем, иду спать. Есть теории, что проблема кроется в неверно подобранных командах Serial.read/flush/write и др., в некачественной пайке или может еще чего, хз. Довольно странно и то, что в режим АТ команд модуль не хочет никак переходить (ну по сути передача данных останавливается, но ни на одну из инструкций не реагирует)
и да, вот здесь
должна быть двоечка после Т, это так, к слову
Модуль не хочет выходить в AT команды, ставлю set на землю
не забывай про это
the JDY -40 module sends the AT instruction need to end the symbol \r\n
я тоже с этим долго бился, а потом мануально отправил "AT+BAUD\r\n" и получил наконец-то отклик
Ну... модуль просто выдает непрерывное START
Если честно, я в тупике. Пойду перепаяю пятачки что-ли...
В общем, я перегрел один модуль и оторвал дорожку. Ну и хрен с ним, всё равно ничего не вышло :) (@%!бись перепаял пятачки)