Добрый день! При подключении GPS модуля к андурино UNO возникли проблемы: В проекте SoftwareSerial в монитор порта выдает непонятный набор символов, при подключении через UART переходник информация стандартная, u-center - определяет все координаты. Скорость передачи данных всегда 9600. На прямую все работает прекрасно, стоит пропустить сигнал через UNO - полная неразбериха. Пробовал через NANO - результат как и через UNO. Подключаю через загрузчик платы UNO (вывод 1) при нажатии кнопки сброс на плате информация стандартная, все работает. Помогите разобраться, если кто то сталкивался с такой проблемой.
Схема: Код: #include <SoftwareSerial.h> SoftwareSerial softSerial(2,3); void setup(){ // softSerial.begin(9600); Serial.begin(9600); } // void loop(){ // if(softSerial.available()){ Serial.write(softSerial.read());} if( Serial.available()){softSerial.write( Serial.read());} } Результат на мониторе порта : k6⸮⸮5Z⸮⸮%⸮"⸮⸮˲ ⸮R⸮⸮⸮"⸮⸮⸮⸮⸮#⸮ ⸮⸮⸮⸮⸮ ⸮c⸮⸮(⸮⸮FC⸮⸮⸮⸮5Z⸮⸮5⸮"⸮G⸮⸮⸮⸮⸮⸮⸮⸮⸮ ⸮⸮⸮⸮"⸮⸮i6⸮⸮5"⸮⸮⸮+⸮⸮⸮⸮⸮\⸮+⸮(⸮ ⸮$⸮)⸮"⸮⸮⸮⸮⸮⸮⸮⸮6⸮ȥ*⸮⸮⸮+⸮$⸮⸮⸮u:⸮$%⸮&⸮⸮⸮⸮,⸮⸮5⸮$⸮E⸮⸮⸮$⸮%⸮⸮ ⸮⸮F⸮E⸮B⸮⸮R⸮⸮⸮L*⸮⸮DR⸮+⸮$⸮%⸮a,$⸮t⸮⸮,⸮⸮⸮qs⸮⸮(⸮"⸮˄⸮⸮⸮⸮X&⸮⸮⸮⸮,⸮⸮5⸮$⸮E⸮⸮⸮ ⸮⸮5⸮⸮⸮˴⸮Z⸮⸮S⸮0Z⸮⸮Iu"I⸮⸮h Y⸮⸮⸮⸮%%⸮⸮Ų⸮⸮⸮⸮⸮⸮RɄ⸮"⸮⸮F⸮$⸮⸮L#V⸮⸮e⸮e⸮⸮Ų⸮⸮⸮⸮ По такой схеме, при нажатом сбросе: Результат на мониторе порта : $GNGSA,A,3,13,15,21,,,,,,,,,,4.93,4.45,2.12*13 $GNGSA,A,3,84,69,78,,,,,,,,,,4.93,4.45,2.12*1A $GPGSV,3,1,10,08,19,319,,10,50,236,,13,22,041,25,15,44,072,28*79 $GPGSV,3,2,10,16,14,254,,20,78,220,,21,67,128,26,24,04,112,21*7B $GPGSV,3,3,10,27,47,291,,30,01,356,*76 $GLGSV,3,1,09,68,05,039,22,69,53,048,31,70,62,203,,71,12,214,*68 $GLGSV,3,2,09,77,15,347,,78,10,037,25,84,32,143,11,85,84,255,18*65 $GLGSV,3,3,09,86,28,318,*52 $GNGLL,5611.26382,N,06024.33722,E,151421.00,A,A*7E $GNRMC,151422.00,A,5611.26382,N,06024.33705,E,0.566,,100619,,,A*6B $GNVTG,,T,,M,0.566,N,1.049,K,A*34 $GNGGA,151422.00,5611.26382,N,06024.33705,E,1,05,5.22,254.6,M,-13.4,M,,*63 $GNGSA,A,3,13,15,21,,,,,,,,,,6.34,5.22,3.59*12 $GNGSA,A,3,69,78,,,,,,,,,,,6.34,5.22,3.59*17 Такой же результат будет если подключить через USB-UART преобразователь. GPS модули 3 штуки на разных вариантах плат, базовый чип NEO-M8N. Скорость передачи платы 9600 Ардуино брал UNO, Nano результат один и тот же.
Код вставьте, пожалуйста, как положено. А комп подключен через usb или преобразователь? Попробуйте через преобразователь подключит для 2ого случая. Т.к. там вы подаете сигнал сразу на usb в обход мк. Вообще, софтварный сериал страшно использовать, не пробовали мегу?
да не, коллеги, тут дело не в СофтСериале. Смотрите - скрость никакая. на 9600 софтсериал точно справится. Вопрос к ТС - скорость в Мониторе порта на компе точно в обоих случаях 9600? - проверьте
Сериал, хоть софтверный, хоть железный имеет настройки. Биты,там... контроли. Компутер - он часто может сам определять что к чему. А Ардуина - она только в форме "Бери тиньку 441" правильно работает. Ну это к слову.
Да скорость 9600. Как вставить код я пока не разобрался, вот ссылка откуда был скачан код https://wiki.iarduino.ru/page/Arduino_as_a_USB_UART_converter Пробовал менять вход ТХ на UNO на другие выводы, до 7 то же самое, начиная с 8 опять же набор символов но уже по другому. Вход менял изменяя в коде номер ноги.
Попробуйте проверить этот пример. Вам понадобится доп. UART-USB преобразователь и доп. монитор на пк (советую termite). Естественно, проверьте настройки обоих портов.
Спасибо, попробовал с termite и arduino.exe эффект тот же Скорость выставил программно 9600. Поигрался на других значениях то же самое. Может уровни сигналов не стыкуются, уже не знаю что делать.
Так надо чтобы ВЕЗДЕ стояла скорость 9600. Это касается и преобразователях USB - COM! Его настройки надо смотреть в свойствах драйвера.
Зайдите в настройки termite, слева колонка с настройками com-порта. Вот эти настройки должны быть одинаковыми на всех устройствах. Подключите так: пк = usb = arduino = преобразователь на 2 и 3 пины = пк. Загрузите тестовый пример с сайта ардуино.сс (с 2 и 3 пином). Откройте термит и монитор порта ардуино (или можно 2 термита). Вы должны отправить в одном термите посылку и получить его в другом. Если это не так, значит настройки не одинаковы (у ардуино тоже!).
Вместо 2ой ардуинки можно подсунуть gps модуль. Если вы угадали его uart-параметры, то должно заработать.
Всем спасибо за помощь!!! Проблемы были с Arduino IDE версии 1.8.2. Загрузил через версию 1.6.5 все заработало как надо.