Comunicación GPS NEO-6M

Estimados,

Estoy trabajando con el módulo GPS NEO-6M y la librería TinyGPS.

Al GPS lo he conectado a los pines 1 y 0, con un programa vacío y envía los datos periódicamente cada 1 segundo correctamente.

El problema que tengo es que, cuando intento parsear los datos con la librería y ya con los pines RX y TX conectados al Serial3, obtengo datos únicamente al abrir el Monitor Serie y sólo 1 vez, luego repite el mismo dato.

He notado que al abrir el Monitor Serie "parpadea" el led "L", por lo tanto entiendo que en este momento de apertura del Monitor el GPS recibe algún mensaje y luego envía los datos.

Adjunto código que estoy usando.

#include <TinyGPS++.h>
TinyGPSPlus gps;

void setup() {
  Serial.begin(115200); 
  Serial3.begin(9600); 
}

void loop() {   
            gps.encode(Serial3.read());     
          if (gps.time.isValid()){
            if (gps.time.hour() < 10) Serial.print(F("0"));
            Serial.print(gps.time.hour()-3);
            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.println(gps.time.centisecond()); 
            Serial.print(gps.date.day()); // Day (1-31) (u8)
            Serial.print("/");
            Serial.print(gps.date.month()); // Month (1-12) (u8)
            Serial.print("/");
            Serial.println(gps.date.year()); // Year (2000+) (u16)
            gps.encode(' ');        
          }

        }

Espero su respuesta,
Muchas gracias,
Saludos.

:o ?

octabidegain:
Estoy trabajando con ...... la librería TinyGPS.

#include <TinyGPS++.h>

TinyGPSPlus gps;

En tu código la librería que utilizas es la PLUS TinyGPS++

Entonces leyendo aquí, por ejemplo, ya encuentro cosas cuestionables,

http://arduiniana.org/libraries/tinygpsplus/

Una muestra del ejemplo

SoftwareSerial ss(4, 3);
void loop()
{
  while (ss.available() > 0)
    gps.encode(ss.read);
  ...

Y esto otro

octabidegain:
../..
gps.encode(' ');
../..

Porque no utilizas el código del ejemplo, y lo vas amoldando a lo que quieres ?