Возможно ли использование двух модулей с последовательным интерфейсом на одном Arduino Uno?
Мне было интересно, есть ли у меня модуль Bluetooth HC-05 и модуль GPS (uBlox 7N). Возможно ли, чтобы оба они использовали последовательный интерфейс?
Я в курсе, что они не могут работать одновременно друг с другом, но если я, используя в Rx и TX пины для GPS-модуль, я могу получить местоположение, хранить его в переменной, затем завершите GPS последовательной использования и программного обеспечения через последовательный с 2 контактами мой выбор передачу данных через модуль Bluetooth, который также требует оследовательный контакт?
@Explorex, 👍1
Обсуждение1 ответ
Вы правы, что вам нужен один последовательный интерфейс для каждого модуля. Uno имеет только 1 аппаратный последовательный интерфейс (аппаратное обеспечение означает, что аппаратное обеспечение ардуино будет выполнять коммуникационную работу в фоновом режиме, и вы можете позволить ему делать другие вещи в то же время). Но вы можете добавить больше последовательных интерфейсов на другие контакты, которые работают исключительно с помощью программного обеспечения. Для этого предназначена библиотека SoftwareSerial.
SoftwareSerial
имеет некоторые ограничения, поскольку загрузка связи должна выполняться программным обеспечением, а не аппаратным обеспечением. Например, он становится нестабильным при высоких бодратах. Особенно для HC-05 вы не должны использовать скорость передачи данных 115200 бод и выше. Кроме того, поскольку для работы используются прерывания смены контакта, вы можете прослушивать только один программный материал в любой момент времени.
Поскольку у вас есть только 2 модуля, должно быть легко возможно использовать SoftwareSerial и получить доступ к обоим из них с помощью Uno. Если вы когда-нибудь захотите использовать больше последовательных модулей, вы все равно можете перейти на более крупную плату, такую как Mega.
Примечание: Перед программированием Uno по последовательному интерфейсу (USB) обязательно отсоедините модуль от аппаратного последовательного интерфейса, иначе программирование завершится ошибкой.
- последовательная передача данных на GPS-экране duinopeak
- AT-команда не отвечает на последовательный монитор
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- myserial.available() возвращает нулевой байт
- Последовательная связь от Arduino до ESP8266 NodeMCU работает, но от NodeMCU до Arduino не работает
- Отправка команд PUBX на плату GPS (Ublox NEO-6M) через SoftwareSerial
Нет, вы не можете сделать это на одном последовательном интерфейсе. Однако вы можете использовать программную последовательную библиотеку и "создать" второй последовательный интерфейс., @Mike Petrichenko
Да, вы можете использовать несколько портов SoftwareSerial, но прослушивать их можно только по одному. Самое простое решение - плата arduino mega 2560 с 3 дополнительными аппаратными последовательными портами., @Jot