Возможно ли использование двух модулей с последовательным интерфейсом на одном Arduino Uno?

Мне было интересно, есть ли у меня модуль Bluetooth HC-05 и модуль GPS (uBlox 7N). Возможно ли, чтобы оба они использовали последовательный интерфейс?

Я в курсе, что они не могут работать одновременно друг с другом, но если я, используя в Rx и TX пины для GPS-модуль, я могу получить местоположение, хранить его в переменной, затем завершите GPS последовательной использования и программного обеспечения через последовательный с 2 контактами мой выбор передачу данных через модуль Bluetooth, который также требует оследовательный контакт?

, 👍1

Обсуждение

Нет, вы не можете сделать это на одном последовательном интерфейсе. Однако вы можете использовать программную последовательную библиотеку и "создать" второй последовательный интерфейс., @Mike Petrichenko

Да, вы можете использовать несколько портов SoftwareSerial, но прослушивать их можно только по одному. Самое простое решение - плата arduino mega 2560 с 3 дополнительными аппаратными последовательными портами., @Jot


1 ответ


1

Вы правы, что вам нужен один последовательный интерфейс для каждого модуля. Uno имеет только 1 аппаратный последовательный интерфейс (аппаратное обеспечение означает, что аппаратное обеспечение ардуино будет выполнять коммуникационную работу в фоновом режиме, и вы можете позволить ему делать другие вещи в то же время). Но вы можете добавить больше последовательных интерфейсов на другие контакты, которые работают исключительно с помощью программного обеспечения. Для этого предназначена библиотека SoftwareSerial.

SoftwareSerial имеет некоторые ограничения, поскольку загрузка связи должна выполняться программным обеспечением, а не аппаратным обеспечением. Например, он становится нестабильным при высоких бодратах. Особенно для HC-05 вы не должны использовать скорость передачи данных 115200 бод и выше. Кроме того, поскольку для работы используются прерывания смены контакта, вы можете прослушивать только один программный материал в любой момент времени.

Поскольку у вас есть только 2 модуля, должно быть легко возможно использовать SoftwareSerial и получить доступ к обоим из них с помощью Uno. Если вы когда-нибудь захотите использовать больше последовательных модулей, вы все равно можете перейти на более крупную плату, такую как Mega.

Примечание: Перед программированием Uno по последовательному интерфейсу (USB) обязательно отсоедините модуль от аппаратного последовательного интерфейса, иначе программирование завершится ошибкой.

,