Подключите GPS-модуль (WeeBee) к Arduino Uno

Это мой самый первый проект Arduino. Я хочу узнать о GPS-навигации, изучив протокол NMEA!

Поэтому я купил модуль WeeBee GPS. После прочтения спецификации у меня возникло два вопроса:

  1. На официальном сайте Arduino указано

    Примечание: если вы используете Arduino Uno, имейте в виду, что вы не сможете использовать модуль GPS одновременно с компьютером, подключенным к порту USB.

    Но если вы дочитаете его урок до конца, вы увидите, что он может передавать данные GPS на свой компьютер. Я не понимаю, почему это не возможно...

  2. В техническом описании модуля GPS (ссылка для скачивания здесь) указано, что максимальное напряжение составляет 5 В. Но там также указано

последовательные соединения имеют логические уровни 3,3 В КМОП

и

Соответствующая развязка должна быть обеспечена внешней развязывающей схемой.

Значит ли это, что мне нужен преобразователь логических уровней, чтобы предотвратить повреждение модуля GPS?

, 👍1


1 ответ


1
  • Статья на сайте Arduino означает, что вы не можете загружать скетчи с вашего ПК на Arduino или получать какие-либо данные, через последовательный монитор или иным образом, с вашего ПК, пока модуль GPS использует вывод RX. Любая попытка отправить данные с ПК на Uno в этом состоянии приведет к тому, что Arduino получит только поврежденные данные, поскольку 2 устройства (модуль GPS и ПК) будут пытаться отправить данные одновременно, по одной и той же линии. Это ограничение легко устранить, подключив модуль GPS к порту SoftwareSerial; это оставляет порт HardwareSerial (выводы 0 и 1) свободным для двунаправленной связи ПК-Arduino.
  • В техническом описании указано, что максимальное напряжение питания составляет 5 В. Однако последовательные соединения имеют логику 3,3 В, поэтому да, вам понадобятся преобразователи уровня логики. Подойдет простой делитель напряжения. Однако «внешняя развязка» относится к схемам, используемым для развязки/сглаживания любых скачков или провалов, которые могут возникнуть в напряжении питания. Неконтролируемый скачок может повредить устройство, в то время как провал (возможно, из-за большого потребления тока) может привести к тому, что устройство перестанет работать, если напряжение упадет достаточно низко, чтобы считаться пониженным напряжением. Электролитический конденсатор емкостью 10 мкФ, подключенный между Vcc и GND близко к модулю GPS, должен подойти.
,

Спасибо за ваш ответ! -) Я буду использовать «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