Globalsat et-332 (GPS) и arduino

1101
Offline
Зарегистрирован: 15.07.2012

Подключаю гпс к Serial1 arduino, на выходе получаю 

é9óæ̦&¦f³¦&æssssóæóææssS9ófóæS9sóæææfM=æ̦æ&f³¦&æS¦&æÌÓ:>6NÆN>2"26F:>2NêN:N>2N2F&N6>FNÊN:.F*NÊNN>>>>V*ÊÖùé9óæ̦æ¦Ì³¦&æS¦&æÌÓ>NÆN>2"26F:>"NêN:N>2N2F&N6>FNÊN:.F*NÊNN>>>>V*:ÊÖ

 

Использую следующий код на Ардуино

void setup() {
  // initialize both serial ports:
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
  // read from port 1, send to port 0:
  if (Serial1.available()) {
    char inByte = Serial1.read();
    Serial.write(inByte); 
  }
  
 
}

 

При этом при подключении к ПК того же вывода GPS - получаю нормальный поток NMEA данных

В чем может быть проблема?

LEVV2006
LEVV2006 аватар
Offline
Зарегистрирован: 15.04.2011

Попробуй так. Но не гарантирую
if (Serial1.available()) {
Serial.write(Serial1.read());
}
 

leshak
Offline
Зарегистрирован: 29.09.2011

 очень похоже что в Serial мониторе скорость выставили неправильно (нижний правый угол). Скорее всего там что-то отличное от 9600. Или сам шилд работает не на 9600

Либо в скетче (скорее всего) нужно поправить скорость на ту с которой GPS работает. Вообщем нужно что-бы все три скорости "работы шилда" сериал монитора и того-то в скетче совпадало.

Точнее тот порт который общаяется к компом можно и "побыстрее" (но опять-таки и на компе нужно ту же скорость установить).

Вообщем Serial.begin(9600); должно совпадать со скоростью в сериал мониторе, Serial1.begin(9600); должно совпадать со скоростью на которой GPS шлет данные, при этом скорость Serial должен быть равна или больше Serial1

1101
Offline
Зарегистрирован: 15.07.2012

leshak, у меня не шилд, а OEM модуль

со скоростями все отлично, все совпадает

на англоязычном форуме выдали терию, что я пытаюсь соединить RS-232 девайс с TTL ардуино, т.е. нужно либо менть GPS, либо делать переходник на базе MAX232

Похоже на правду, но я, если честно, думал что ардуино нормально понимает rs-232

leshak
Offline
Зарегистрирован: 29.09.2011

>leshak, у меня не шилд, а OEM модуль

В данном случае это можно воспринимать как синонимы. Разница-то между "модулем"/брекаутом/шилдом, фактически только в формфакторе. Нужно проводки паять для подключения или нет.

>со скоростями все отлично, все совпадает

Возможно. Но, как говорил Швейк, "осмелюсь доложить что-то я сомневаюсь". Вот в этом даташите http://www.gps-info.com.ua/wp-content/downloads/manuals/gps_module/globalsat/manual_ET_332_OEM.pdf

Написанно: 

Скорость передачи данных
Изменяется программно.
По-умолчанию: NMEA – 4800 б/с, двоичный SiRF - 19200 б/с

Как видим ни та ни друга не похожа на 9600 из вашего скетча. Так что попробуйте сделать Serial1.begin(4800);

Если, только, вы не переключили скорость. А если переключили, то возможна другая причина: вы заодно, переключили в формат "Двоичный SiRF" (вместо NMEA по умолчанию, который "можно читать глазами").

>на англоязычном форуме выдали терию, что я пытаюсь соединить RS-232 девайс с TTL ардуино, т.е. нужно либо менть GPS

Опять-таки "сомневаюсь". В даташите конечно сказанно ""Уровень сигнала TTL/RS-232 (в зависимости от поставки)", но с большой долей вероятности, если бы вы присобачили RS-232 то искали-бы сейчас новую ардуину, а не новый GPS

> либо делать переходник на базе MAX232

Не уверен, но я бы сначала попытался соорудить что-то из этой оперы http://we.easyelectronics.ru/Shematech/soglasovanie-logicheskih-urovney-5v-i-33v-ustroystv.html

По крайней мере пока вы "только читаете" данные из модуля. Вот если вы захотите что-то слать ему - тогда уже начинается все трудней (вообщем "понизить" проще).

>Похоже на правду, но я, если честно, думал что ардуино нормально понимает rs-232

Ну с "натяжкой" можно и так сказать. Если не ошибаюсь то UART/RS-232 это "два брата". Которые во всем совпадают, кроме напряжения которое означает "логическую единицу". На RS-232 это может быть до 25 ти вольт (на компе это обычно 12-ть). Вот поэтому я и сказал что если-бы у вас был RS-232 версия, которые действительно выдает 12-ть вольт, то вы бы уже спалили вход ардуины (или вообще всю ее, как повезет). Тыкните в вольтметром в TX шилда. Что-бы не гадать.

P.S. И еще посмотрите как вы подключили, может вы TX,RX перепутали? Обычно TX модуля должен идти к RX дуины

PAV
Offline
Зарегистрирован: 29.10.2012

Подскажите, а разобрались в итоге? Та же проблема.