Как получать данные от Xbee в режиме AT на Arduino Nano

Мне нужно распечатать данные на последовательном мониторе Arduino, полученные от Xbee в режиме AT. Я искал на большинстве форумов и не нашел ничего о том, как это сделать.

У меня есть Xbee tx, подключенный к Arduino nano Rx, а rx подключен к tx.

, 👍1


1 ответ


1

Вы подключили Xbee к единственному аппаратному последовательному интерфейсу, который есть у Nano. Is также используется микросхемой USB to Serial, которая подключается к последовательному монитору. Таким образом, то, что вы отправляете на Xbee, также отправляется на последовательный монитор. То, что отправляет Xbee, отправляется только на Arduino (поскольку вывод Xbee TX подключен к RX Arduino, а также к TX ардуино USB к последовательному чипу).

Но вы можете отделить это, используя программный интерфейс на любых других контактах по вашему вкусу. Затем вы можете подключить к нему Xbee. Затем перенаправьте выходные данные интерфейса SoftwareSerial на последовательный интерфейс. Чтобы увидеть, как это работает, взгляните на первый пример библиотеки SoftwareSerial. Он в основном проверяет оба интерфейса, считывает доступные данные из одного интерфейса и записывает их в другой (обратите внимание на write() в отличие от print(), поскольку при пересылке вы не хотите снова интерпретировать данные в другой формат, как это делает print()).

Кроме того, в Интернете есть множество примеров и руководств по SoftwareSerial. Важным ограничением является то, что только один программный интерфейс может прослушивать данные в любое время. Аппаратный последовательный интерфейс не имеет такой проблемы.

,

Спасибо вам за ваш ответ. Я попробую это сделать. Вы сказали, что только один программный последовательный может одновременно прослушивать данные. Означает ли это, что я не смогу подключить модуль GPS к программному последовательному интерфейсу на разных контактах, а также к модулю Xbee? Как бы я решил эту проблему?, @Matthew Haywood

Когда вы взаимодействуете с модулем, который будет отправлять данные только по вашему запросу, вы можете реализовать совместное использование времени. Итак, слушайте один интерфейс, запрашивая информацию у соответствующего модуля и читая ее. Затем прослушайте другой интерфейс, запрашивая у этого модуля информацию и читая ее. Промойте и повторите процедуру. Хотя это работает только в том случае, если вы не можете пропустить данные из одного модуля во время чтения другого. Если вам не хватает данных, вы можете перейти на микроконтроллер с более аппаратными последовательными интерфейсами, такими как Arduino Mega., @chrisl

Хорошо, спасибо, в этом есть смысл., @Matthew Haywood

Как мне добавить библиотеку SoftwareSerial? Кажется, это не всплывает в менеджере библиотеки?, @Matthew Haywood

Потому что это уже часть ядра Arduino. Вам не нужно его устанавливать. Вы можете использовать его непосредственно с Arduino IDE., @chrisl