Arduino-GPS不提供经度和纬度值

时间:2015-12-05 05:15:34

标签: gps arduino

我正在尝试跟踪GPS,但我无法接收经度和纬度数据。 我正在使用" Adafruit Ultimate GPS Breakout V3" GPS模块和" Arduino UNO R3"

这是我的代码。我试过了两个

::: First Code :::

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

long flat, flon;

SoftwareSerial gpsSerial(2, 3);  // Create GPS pin connection
TinyGPS gps;

void setup(){
Serial.begin(9600); // connection serial
gpsSerial.begin(9600); // gps burd rate
}

void loop(){
while(gpsSerial.available()){  // check for gps data
if(gps.encode(gpsSerial.read())){  // encode gps data
  gps.get_position(&flat, &flon);  // get lattitude and longitude
  // display position
  Serial.print("Position: ");
  Serial.print("lat: ");Serial.println(flat);
  Serial.print("lon: ");Serial.println(flon);
    }
  }
}

:::第二代码:::

#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#define RXPin 3
#define TXPin 4
#define GPSBaud 9600
#define ConsoleBaud 115200

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

// The TinyGPS++ object
TinyGPSPlus gps;

void setup(){
  Serial.begin(ConsoleBaud);
  ss.begin(GPSBaud);

  Serial.println("GPS Example 2");
  Serial.println("A simple tracker using TinyGPS++.");
  Serial.println();
}

void loop(){
 // If any characters have arrived from the GPS,
 // send them to the TinyGPS++ object
 while (ss.available() > 0)
 gps.encode(ss.read());

 // Let's display the new location and altitude
 // whenever either of them have been updated.
 if (gps.location.isUpdated() || gps.altitude.isUpdated()){
   Serial.print("Location: ");
   Serial.print(gps.location.lat(), 6);
   Serial.print(",");
   Serial.print(gps.location.lng(), 6);
   Serial.print("  Altitude: ");
   Serial.println(gps.altitude.meters());
  }
}

1 个答案:

答案 0 :(得分:1)

您使用的是哪些针脚?第一个代码显示2&amp; 3,但第二个代码显示3&amp; 4。请记住,GPS TX引脚转到Arduino RX引脚。同样,GPS RX引脚转到Arduino TX引脚。对于第一个代码,GPS TX引脚应连接到Arduino引脚2。

你在里面吗?您可能必须在外面,或者至少在某些窗口附近,GPS设备才能从卫星接收。第一次修复可能需要15分钟。

虽然您没有显示任何输出,但您应首先尝试一个简单的回声程序,以查看GPS设备是否正在发送任何

#include <NeoSWSerial.h>
NeoSWSerial gpsSerial( 2, 3 );

void setup()
{
  Serial.begin( 9600 );
  gpsSerial.begin( 9600 );
}

void loop()
{
  if (gpsSerial.available())
    Serial.write( gpsSerial.read() );
}

我还建议您使用NeoSWSerial库。它是我的库,它比SoftwareSerial更有效,更可靠。