Подключите GPS-модуль (WeeBee) к Arduino Uno
Это мой самый первый проект Arduino. Я хочу узнать о GPS-навигации, изучив протокол NMEA!
Поэтому я купил модуль WeeBee GPS. После прочтения спецификации у меня возникло два вопроса:
На официальном сайте Arduino указано
Примечание: если вы используете Arduino Uno, имейте в виду, что вы не сможете использовать модуль GPS одновременно с компьютером, подключенным к порту USB.
Но если вы дочитаете его урок до конца, вы увидите, что он может передавать данные GPS на свой компьютер. Я не понимаю, почему это не возможно...
В техническом описании модуля GPS (ссылка для скачивания здесь) указано, что максимальное напряжение составляет 5 В. Но там также указано
последовательные соединения имеют логические уровни 3,3 В КМОП
и
Соответствующая развязка должна быть обеспечена внешней развязывающей схемой.
Значит ли это, что мне нужен преобразователь логических уровней, чтобы предотвратить повреждение модуля GPS?
@Simon, 👍1
1 ответ
- Статья на сайте Arduino означает, что вы не можете загружать скетчи с вашего ПК на Arduino или получать какие-либо данные, через последовательный монитор или иным образом, с вашего ПК, пока модуль GPS использует вывод RX. Любая попытка отправить данные с ПК на Uno в этом состоянии приведет к тому, что Arduino получит только поврежденные данные, поскольку 2 устройства (модуль GPS и ПК) будут пытаться отправить данные одновременно, по одной и той же линии. Это ограничение легко устранить, подключив модуль GPS к порту
SoftwareSerial; это оставляет портHardwareSerial(выводы 0 и 1) свободным для двунаправленной связи ПК-Arduino. - В техническом описании указано, что максимальное напряжение питания составляет 5 В. Однако последовательные соединения имеют логику 3,3 В, поэтому да, вам понадобятся преобразователи уровня логики. Подойдет простой делитель напряжения. Однако «внешняя развязка» относится к схемам, используемым для развязки/сглаживания любых скачков или провалов, которые могут возникнуть в напряжении питания. Неконтролируемый скачок может повредить устройство, в то время как провал (возможно, из-за большого потребления тока) может привести к тому, что устройство перестанет работать, если напряжение упадет достаточно низко, чтобы считаться пониженным напряжением. Электролитический конденсатор емкостью 10 мкФ, подключенный между Vcc и GND близко к модулю GPS, должен подойти.
- GPS-модуль uBlox Neo 6M не отвечает
- Как отправить данные из Arduino Uno с SIM900 GPRS в Firebase
- Ошибка инициализации GPS DFRobot [Arduino Uno, SIM808]
- GPRS SIM900 и GPS NEO-6M не работают вместе
- TinyGPS не дает долготу, широту и другие данные
- GPS не определяется на модуле SIM808!
- Serial.parseFloat() считывает 0, несмотря на то, что я ввел другое значение
- последовательная передача данных на GPS-экране duinopeak
Спасибо за ваш ответ! -) Я буду использовать «softwareserial» на контактах 2 и 3 вместо «hardwareserial» на контактах 0 и 1. Но в руководстве этого не делали, и они по-прежнему могут отправлять данные GPS на компьютер... -) Полагаю, что преобразователь уровня логики, например, [этот](http://www.dx.com/nl/p/high-speed-8-bit-bidirection-voltage-level-translator-module-for-arduino-417792#.V3dxzKKBRmw), справится с этой задачей? Вместе с конденсатором 10 мкФ, подключенным к портам «VA» и «OE» преобразователя уровня., @Simon
Дорогой @TisteAndii, Еще раз спасибо за ответ. Не могли бы вы взглянуть на мой ответ? Просто чтобы убедиться, что я правильно его понял. С уважением, Саймон., @Simon
@Simon, опубликуй ссылку на руководство. Да, нужно использовать контакты 2 и 3 с SoftwareSerial. Что касается логического преобразователя, то нужна всего лишь пара резисторов, возможно, 2,2 кОм и 3,3 кОм. Погуглите «резистивный делитель напряжения 5 3,3»., @SoreDakeNoKoto
Уважаемый @TisteAndii, я имел в виду [страницу Arduino](http://playground.arduino.cc/Tutorials/GPS). Вы увидите, что они подключили GPS-модуль к контакту 0, но также могли передать его на компьютер через SoftwareSerial (как показано внизу страницы)., @Simon
Спасибо за ваш вклад в преобразователь логических уровней. Действительно, 1,7 кОм и 3,3 кОм (или 10 кОм и 20 кОм и так далее) подойдёт. Хотя простой резистивный делитель напряжения не рекомендуется. На него может влиять импеданс окружающих цепей (хотя, полагаю, здесь это не проблема) и высокочастотные сигналы (не знаю, будет ли проблема со скоростью передачи данных 9600 бит/с)., @Simon
Хочу добавить, что
SoftwareSerial— худшая программная последовательная библиотека для использования с GPS-устройством. [AltSoftSerial](https://github.com/PaulStoffregen/AltSoftSerial) — лучший вариант для контактов 8 и 9, за ним следует [NeoSWSerial](https://github.com/SlashDevin/NeoSWSerial) для любых контактов, и последний вариант — SoftwareSerial для любых контактов. Этот ответ содержит полную информацию., @slash-dev