NEO6M V2 не работает с Arduino Mega 2560
- Войдите на сайт для отправки комментариев
У меня есть модуль GPS NEO6M V2(красненький).
Подключаю к ардуино уно, все работает, как надо.
Подключаю к меге 2560, пишет типа "No GPS data received: check wiring".
Слышал, что кто-то решил эту проблему добавлением блока питания и регулировкой напряжения, что мол модуль на самом деле работает от 3.8 - 4.2 Вольт. Померял напряжение на Меге и на уне:
Arduino UNO:
pin 3.3В: 3.29
pin 5В: 4.95
Arduino Mega 2560:
pin 3.3В: 3.28
pin 5В: 4.88
На уне работало от вывода 3.3 В. И разница по этому пину на платах всего 0.01 Вольта.
На всякий случай поставил блок питания. Попробовал на всем диапазоне от 3 до 5 вольт.
Результата нет.
На англоязычном формуме видел сообщение о том, что нужен делитель напряжения, потому, что логика модуля работает на 3.3 В и чтобы ардуина проще воспринимала логические 0 и 1 (схема делителя прилагается). Спаял делитель - не помогло.
Нашел также предложение использовать не программный UART, как это сделано в примере библиотеки TinyGPS++, а аппаратный Serial1 (pin18, pin19). Это тоже проблему не решило.
Больше предположений нет. Если кто-то знает, в чем причина или хотя-бы может предположить, пишите, пожалуйста.
Тоже, поди, не соединили GND модуля и ардуины?
Соединили, конечно. Питание на модуль идет. Индикатор питания светится.
Еще один нюанс заметил. При подключении модуля к уне мигает TX, а при поключении к меге 2560 мигает RX. Что-то странное творится. Заливаю один и тот же скетч. Подключаю всегда одинаково правильно.
Вообще-то у Меги 4 штуки TX и 4 штуки RX, Вы к каким подключали?
Сначала делал, как в библиотеке написано. Назначил программный UART на пины 3 и 4 (static const int RXPin = 4, TXPin = 3; SoftwareSerial ss(RXPin, TXPin);) Не работает. Потом переназначил на 8 и 9 пины. Результата нет. После подключил на Serial1(RX1-19, TX1-18). Разумеется убрал библиотеку программного UART и написал, чтобы данные для объекта GPS класса TinyGPS++ брались не с программного, а Serial1. Serial1 поставил скорость 9600 (скорость модуля).
Сначала делал, как в библиотеке написано. Назначил программный UART на пины 3 и 4 (static const int RXPin = 4, TXPin = 3; SoftwareSerial ss(RXPin, TXPin);) Не работает. Потом переназначил на 8 и 9 пины. Результата нет. После подключил на Serial1(RX1-19, TX1-18). Разумеется убрал библиотеку программного UART и написал, чтобы данные для объекта GPS класса TinyGPS++ брались не с программного, а Serial1. Serial1 поставил скорость 9600 (скорость модуля).
RX/TX меняли местами? Достаточное количество ампер обеспечили модулю?
Сейчас попробую поменять. Плату питаю по USB, сколько Ампер идет на питание модуля, не мерял.
Поменял местами RX и TX. Помогло! Спасибо огромное! Парюсь уже 2-й день с этим, думал уже не получится. А вообще почему так произошло? Почему вместо TX мигал RX и подключать приходится RX-RX, TX-TX?
Это волшебство. И наблюдательность.
Может вы ориентировались не на картинку с распиновкой, а на надписи на Меге? Так там, говорят, опечатки китайцы делают - на RX-е пишут TX, а на TX-e - RX. Мигает тот диод, куда прет сигнал. Исходя из вашего объяснения я сделал вывод, что он шел в другой выход. Значит надо было пустить его в нужный, а так как их всего два - то просто поменять местами.
Зачастую на модулях бывает, что надписи RX TX означают, что к ним нужно подключать RX модуля к RX конвертера,
Так и есть. Сейчас открыл распиновку и убедился, что китайцы наоборот всё написали. RX вместо TX, TX вместо RX.
Мне не помогает :(
Помогите мне пожалуйста!!
Помогите мне пожалуйста!!
так как же тебе помочь, если ты ничего не говоришь?
У меня Arduino mega 2560 не работает gps6mv2 я все перепробывал не помогает
У меня Arduino mega 2560 не работает gps6mv2 я все перепробывал не помогает
выкладывай скетч и схему.
Только сразу предупреждаю - если ответ будет что-то вроде "схема и скетч стандартные" - тогда на ответ не рассчитывай
А как отправить фото??
Ну так check wiring, check speed.
Use force, Luke! Hit them!
???
Примерно вот так:
А еще скинь скрин, что у тебя пишет ком-порт.
Здравствуйте. Приобрел GPS модуль https://roboparts.ru/catalog/datchiki/datchiki_navigatsii/smart-gnss-gps-glonass-modul-neo-m8n/. Подключил к arduinonano, как на схеме с сайта (только пины поменял на 3 и 4):
Напряжение на батарейке модуля 2,2 вольта. Если я правильно понял, у модуля получилось найти спутники (мигает красный светодиод), однако, координаты ардуино не получает.
После использования данной программы (пример simple_test из библиотеки TinyGPS):
в мониторе порта оказалось следующее:
Взяв пример test_with_gps_device из той же библиотеки:
получил:

Если поменять пины RX и TX местами, какие-либо значения и вовсе пропадут:
Грешил на батарейку, она вроде как вольта на 3 должна быть. Подал на контакты батарейки (разумеется, после ее извлечения) напряжение от ЛБП, однако, не помогло.
Ранее получалось добыть координаты, используя этот модуль, но повторить успех не выходит.
Буду благодарен за любую помощь в решении проблемы.
Сначала скажу очевидное: не нужно вставлять текст картинкой. Текст нужно вставлять текстом.
Потом: любом модулю GPS нужно:
- свободное небо, чтобы он мог найти на нем спутники, т.е. в комнате он работать не будет,
- время, чтобы "прочухаться", если модуль давно не работал, это время может составлять десятки минут.
SoftwareSerialExample.ino покажет, что валит из модуля.
SoftwareSerialExample.ino покажет, что валит из модуля.
Вот это да... Если человеку для чтения из порта нужен пример, то что он сможет сделать дальше ?
О спустя долгое время ответили. Но я уже не собираюсь подключать GPS модуль брак попался(
О спустя долгое время ответили. Но я уже не собираюсь подключать GPS модуль брак попался(
брак? или просто не осилил? :)
Проблема с получением данных была решена: я взял пример из библиотеки TinyGPS++, после чего все заработало. Что было не так с прошлой библиотекой, я так и не понял.
Однако, возникла новая проблема. В рамках моего проекта требуется отправлять координаты, полученные с GPS модуля, на телефон, используя SMS и gprs модуль SIM800L. По отдельности все работает замечательно, но если соединить две программы, координаты вновь пропадут. Оба модуля объявляются библиотекой SoftwareSerial и работают через последовательный порт. Полагаю, так делать нельзя, но альтернативу найти у меня не получается. Пожалуйста, подскажите адекватный способ реализации данной задачи.
У софтсериала есть функция listen(), она вроде для таких случаев.
вертеплюшка, SoftwareSerial - это костыль, который допустимо использовать в процессе отладки проекта, но которому вряд ли есть место в финальном решении.
Если Ваша программа требует двух последовательных портов, то IMHO это совершенно недвусмысленное указание на то, что Вам нужно сменить контроллер на тот, у которого есть достаточно аппаратных портов, а не пытаться впихнуть в проект программные.
Кстати, в заголовке темы фигурирует Мега2560, у нее 4 аппаратных последовательных порта.
Кстати, в заголовке темы фигурирует Мега2560, у нее 4 аппаратных последовательных порта.
если надо в размерах nano то atmega328pb, у неё как раз два порта
И, как альтернатива, Blue Pill, у него 3 порта при наличии родного USB.
Нашел плату iskra nano pro на ATmega328PB, однако это iskra, и программируется, как я понял, на JavaScript. Скажите, пожалуйста, получится ли программировать iskra nano pro на ардуино?
Плата: https://amperka.ru/product/iskra-nano-pro-headless
да
А пошто ты такие вещи на форуме анперки не спрашиваешь? Там целый раздел есть про Iskra JS