Заставить Arduino отправлять и получать одновременно

Я работаю над проектом, в котором подключаю модуль GPS и экран GPRS SIM900. Местоположение будет отправлено, когда он получит определенный символ.

Теперь мой вопрос: может ли Arduino одновременно получать данные от модуля GPRS и GPS? GPS не выдает координаты, однако работает нормально, не получая сообщения от GPRS.

Я использую программный сериал для обоих. Должен/могу ли я использовать серийный номер оборудования и серийный номер программного обеспечения?

, 👍0

Обсуждение

Вы не можете получать с двух последовательных устройств ПО одновременно., @Majenko


3 ответа


0

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

Почему бы не подключить модуль GPS к аппаратному последовательному порту?

,

1

Я использую SoftwareSerial для обоих случаев.

Как уже говорили другие, вы не можете прослушивать 2 порта SoftwareSerial одновременно.

Должен ли/могу ли я использовать HardwareSerial и SoftwareSerial?

... может ли Arduino одновременно получать данные от модулей GPRS и GPS?

Да, но...

Этот ответ дает полную информацию о выборе «хороших» комбинаций аппаратных и программных последовательных портов. Подведем итог:

  • Используйте порт HardwareSerial (т. е. Serial) для одного из устройств. Вы по-прежнему можете использовать его для отладочных распечаток, если устройство имеет какой-либо формат команд. Например, если команды начинаются с «AT», просто убедитесь, что ни одна из ваших отладочных распечаток не начинается с «AT». Это абсолютно лучший выбор. Вам придется отключить вывод RX 0 от устройства, чтобы загрузить новые скетчи через USB.

  • Используйте AltSoftSerial для другого устройства. Это наиболее эффективный программный последовательный порт, и его можно использовать одновременно с Serial. Он работает только на двух определенных контактах.

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

  • SoftwareSerial — худший выбор. Прием или передача на SoftwareSerial не позволяет всем вышеперечисленным устройствам принимать что-либо. Он отключает прерывания на длительные периоды времени.

,

0

Вы можете подключить GPS к аппаратному последовательному порту RX и GSM к последовательному порту программного обеспечения. аналогичным образом решаю задачу

,