Coordenadas gps en lcd no se ven.

Buenas a todos sigo con mis cacharreos aprendiendo/liándola o como se quiera llamar jajaj en arduino…bueno pues tengo un gps neo-6 y anda en modo monitor de arduino, veo las coordenadas fecha y hora con otro codigo pero con este codigo a la hora de visionarlo en el lcd de 20x04 me sale todo a cero incluso en modo monitor, me compila sin error alguno y es que quiero que sea en lcd 20x04 i2c.

Gracias.

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);  // 4x20 LCD on I2C

TinyGPSPlus gps;

SoftwareSerial ss(8, 9);  //Tx/Rx

void setup()
{
  Serial.begin(115200);
  ss.begin(4800); //default baudrate for EM406
  lcd.init();
  lcd.backlight();
  Serial.println("Starting ..."); //debug
}

void loop()
{
  // This sketch displays information every time a new sentence is correctly encoded.
  while (ss.available() > 0)
    if (gps.encode(ss.read()))
      displayLCD();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println("No GPS detected: check wiring");
    while(true);
  }
}

void displayLCD()
{    
    lcd.setCursor(0, 0);
    lcd.print("Lat: ");                ///////// Lat
    lcd.print(gps.location.lat(), 6);
    
    lcd.setCursor(0, 1);
    lcd.print("Lon: ");                 ///////// Long
    lcd.print(gps.location.lng(), 6);
    
    lcd.setCursor(0, 2);
    lcd.print("Spd: ");              ///////// Speed
    lcd.print(gps.speed.kmph());
    
    lcd.setCursor(11, 2);
    lcd.print("Hdop: ");              ///////// Hdop - Horizontal Dim. of Precision
    lcd.print(gps.hdop.value());
        
    lcd.setCursor(0, 3);
    lcd.print("Alt: ");               ///////// Altitude
    lcd.print(gps.altitude.meters());
    
    lcd.setCursor(11, 3);
    lcd.print("Sat: ");               ///////// Satellite
    lcd.print(gps.satellites.value()), 2;
    
}

Supongo que esos mismos datos los puedes ver por el monitor serie no?

Si pongo este código no veo nada en el modo monitor del ide de arduino tampoco,con otros códigos si lo veo,pero con este ni en modo monitor ni en el lcd.

Lat: 0.000000
Lon: 0.000000
Spd: 0.00 Hdop:0
Alt: 0.00 Sat: 0

Prueba asi

void displayLCD()
{    
    lcd.setCursor(0, 0);
    lcd.print("Lat: ");                ///////// Lat
    //lcd.print(gps.location.lat(),6);
    lcd.print(gps.location.lat());
    
    lcd.setCursor(0, 1);
    lcd.print("Lon: ");                 ///////// Long
    lcd.print(gps.location.lng());
    
    lcd.setCursor(0, 2);
    lcd.print("Spd: ");              ///////// Speed
    lcd.print(gps.speed.kmph());
    
    lcd.setCursor(11, 2);
    lcd.print("Hdop: ");              ///////// Hdop - Horizontal Dim. of Precision
    lcd.print(gps.hdop.value());
        
    lcd.setCursor(0, 3);
    lcd.print("Alt: ");               ///////// Altitude
    lcd.print(gps.altitude.meters());
    
    lcd.setCursor(11, 3);
    lcd.print("Sat: ");               ///////// Satellite
    //lcd.print(gps.satellites.value()), 2; // MAL ESCRITO
    lcd.print(gps.satellites.value()); 
}

Gracias por colaborar surbyte pero me da este error:

Arduino:1.6.0 (Windows 7), Placa:"Arduino Uno"

sketch_sep17a.ino: In function 'void displayLCD()':
sketch_sep17a.ino:3:5: error: 'lcd' was not declared in this scope
sketch_sep17a.ino:6:15: error: 'gps' was not declared in this scope
Error de compilación

con este test me da esto:

Bien pero esos son errores en las primeras lineas, linea 3, linea 6, no en donde yo modifiqué el código.

Que es esto?

Si pongo este código no veo nada en el modo monitor del ide de arduino tampoco,con otros códigos si lo veo,pero con este ni en modo monitor ni en el lcd.

Lat: 0.000000
Lon: 0.000000
Spd: 0.00 Hdop:0
Alt: 0.00 Sat: 0

Como que no ves nada?Eso es problema con tu GPS, no se comunica entonces o tu gps no encuentra satelites.
A ver si alguien te indica mejor.

¿Seguro que esto esta bien?

ss.begin(4800);

Lo normal en gps por defecto son 9600.

Gracias carmeloco, cambiando a 9600 ahora si veo latitud y longitud en el lcd y la velocidad,una preguntilla mas se supone que con este código ,¿también debería de marcar la altitud el hdop y el número de satélites verdad?
salen a cero esas tres casillas.

Muchisimas gracias de antemano.

Depende de si el GPS envía las sentencias NMEA con esa información.

Puedes mirar que sentencias envía el GPS y analizarlas con la información de aqui:

http://www.gpsinformation.org/dale/nmea.htm

Pues ya no lo voy a saber acabo de fundirlo brrrr e quemado el gps e intentado meterle dos leds en el codigo y lo quemao ( no se hacerlo,metodo chapuza y todo esto metiéndole 5 v al gps!)ya no emite destellos verdes,era un neo 6 m no se si da esas secuencias,ya e pedido otro ufff que manazas en fin...como puedo meterle dos leds que parpadeen,que se apague tipo semáforo? te agradecieria mucho tú ajuda.

Gracias.

El neo 6m que yo tengo, entrega las sentencias:

GPRMC
GPVTG
GPGGA
GPGSA
GPGSV
GPGLL

A partir de ahí, y con el link que te he dado, ya tienes deberes, para averiguar qué datos entrega.