NEO-6M GPS возвращает целые числа вместо сообщения NMEA (Arduino Uno) - PullRequest
0 голосов
/ 08 мая 2020

Я подключил модуль GPS NEO-6M к Arduino Uno и установил последовательную связь между ними. Проблема в том, что я получаю только целые числа от GPS, а не сообщение NMEA, как ожидалось.

Кажется, что это остается неизменным, когда светодиод мигает - и, таким образом, установлено соединение GPS - и когда он не мигает.

Кто-нибудь сталкивался с этой проблемой? Есть идеи, что я делаю не так? Я не вижу, что мне не хватает.

Я также читал несколько плохих отзывов об этом модуле, что он очень agile и может быть легко поврежден, но я не знаю, как это проверить (кроме заказа нового ...)

Настройка оборудования

Arduino 5V with NEO VCC
Arduino GND with NEO GND
Arduino Pin 3 (RX) with NEO TX
Arduino Pin 4 (TX) with NEO RX 

Код

#include <TinyGPS.h>
#include <SoftwareSerial.h> 

float lat = 28.5458,lon = 77.1703; // create variable for latitude and longitude object 
SoftwareSerial gpsSerial(3,4);//rx,tx
TinyGPS gps; // create gps object

void setup(){
    Serial.begin(9600); // connect serial
    Serial.println("running setup...");
    Serial.println("waiting for serial port to connect...");
    while (!Serial) {
    Serial.print("."); // wait for serial port to connect. Needed for native USB port only
    }

    Serial.println("starting serial communication gps module...");
    gpsSerial.begin(9600); // connect gps sensor
    Serial.println("setup complete");
}

void loop(){
    while(gpsSerial.available()){ // check for gps data
        Serial.println("gpsSerial is available");
        Serial.println(gpsSerial.read());
    }

    Serial.println("gpsSerial is not available");
    String latitude = String(lat,6);
    String longitude = String(lon,6);
    Serial.println(latitude+";"+longitude);
    delay(1000);
}

Последовательный выход монитора

running setup...
waiting for serial port to connect...
starting serial communication gps module...
setup complete
gpsSerial is not available
28.545799;77.170303
gpsSerial is available
36
gpsSerial is available
71
gpsSerial is available
80
gpsSerial is available
82
gpsSerial is available
77
gpsSerial is available
67
gpsSerial is available
44
gpsSerial is available
44

Заранее большое спасибо!

1 Ответ

0 голосов
/ 15 мая 2020

Как указал Джурадж в комментарии к вопросу, я использовал неправильную команду печати. ​​

// Serial.println("gpsSerial is available");
// Serial.write(gpsSerial.read()); 

Serial.print((char) gpsSerial.read());

Это приводит к правильному сообщению NMEA

running setup...
waiting for serial port to connect...
starting serial communication gps module...
setup complete
gpsSerial is not available
28.545799;77.170303
$GPRMC,085416.00,V,,,,,,,080520,,,N*7C
$GPVTG,,,,,,,,,N*30
$GgpsSerial is not available
28.545799;77.170303
$GPRMC,085417.00,V,,,,,,,080520,,,N*7D
$GPVTG,,,,,,,,,N*30

Спасибо, Джурадж!

...