El caso es que con el programa MT3339 PC Tools, en la pestaña NMEA casi todo el rato sale como si tuviera un formato invalido o algo asi:
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPRMC,20558127.00,A,3659.52007,00894948933.43973,0.17528728715,,040915,,,D*68
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPRMC,20515858728.00,A,3659.545687541954398,00333.43985,W,
0.414,,040915,,,D*66
$GPVTG,,T,,M,0.414,N,0.766,K,D*20
$GPGGA,205128.00,3659.519985278575872,08,0.98,875.5,M,46.5,M,,0000*45
$GPGSA,A,3,07,30,03,17,06,09,23,02,,,,,1.88,0.98,1.61*09
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
$GPTXT,01,01,01,PMTK inv format*3E
(He guarreado datos de las coordenadas, si xD)
Tiene 4 satelites cojidos, pero a veces pega golpes que coje 10 o 11
El caso esque con los sketch del Arduino no hay ningún mensaje de error, y me coje 7 satelites.
Por si a alguien le interesa el código (es el del ejemplo un poco cambiado)
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
static const int RXPin = 3, TXPin = 4;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup()
{
Serial.begin(9600);
ss.begin(GPSBaud);
Serial.print(F("Testeando la libreria TinyGPS++")); Serial.println(TinyGPSPlus::libraryVersion());
Serial.println();
}
void loop()
{
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected: check wiring."));
while(true);
}
}
void displayInfo()
{
Serial.print(F("Localizacion: "));
if (gps.location.isValid())
{
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
}
else
{
Serial.print(F("Localizacion invalida"));
}
Serial.print(F(" Fecha/hora: "));
if (gps.date.isValid())
{
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.year());
}
else
{
Serial.print(F("Fecha invalida"));
}
Serial.print(F(" "));
if (gps.time.isValid())
{
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(F("."));
//if (gps.time.centisecond() < 10) Serial.print(F("0"));
//Serial.print(gps.time.centisecond());
Serial.print("Velocidad: ");
Serial.print(gps.speed.kmph());
Serial.print(" Satelites: ");
Serial.print(gps.satellites.value());
}
else
{
Serial.print(F("Hora invalida"));
}
Serial.println();
}