Probleme mit GPS-Sensor

Hallo Leute,

ich habe ein Problem. Ich bekomme irgendwie meinen ublox NEO-6M-0-001 nicht ans laufen...

ich habe versucht folgenden Sketch auszuprobieren:

#include <TinyGPS++.h>
#include <LiquidCrystal_I2C.h>
#include <TinyGPS.h> 
#include <LiquidCrystal.h> 
#include <SoftwareSerial.h> 
float lat = 28.5458,lon = 77.1703; // create variable for latitude and longitude object  
SoftwareSerial gpsSerial(3,4);//rx,tx 
LiquidCrystal_I2C lcd(0x27, 24, 4);

TinyGPS gps; // create gps object 
void setup(){ 
Serial.begin(9600); // connect serial 
Serial.println("The GPS Received Signal:"); 
gpsSerial.begin(9600); // connect gps sensor 
lcd.begin(); 
} 
void loop(){ 
  while(gpsSerial.available()){ // check for gps data 
  if(gps.encode(gpsSerial.read()))// encode gps data 
  {  
  gps.f_get_position(&lat,&lon); // get latitude and longitude 
  // display position 
  lcd.clear(); 
  lcd.setCursor(1,0); 
  lcd.print("GPS Signal"); 
  Serial.print("Position: "); 
  Serial.print("Latitude:"); 
  Serial.print(lat,6); 
  Serial.print(";"); 
  Serial.print("Longitude:"); 
  Serial.println(lon,6);  
  lcd.setCursor(1,0); 
  lcd.print("LAT:"); 
  lcd.setCursor(5,0); 
  lcd.print(lat); 
  Serial.print(lat); 
  Serial.print(" "); 
  lcd.setCursor(0,1); 
  lcd.print(",LON:"); 
  lcd.setCursor(5,1); 
  lcd.print(lon); 
 } 
} 
String latitude = String(lat,6); 
  String longitude = String(lon,6); 
Serial.println(latitude+";"+longitude); 
delay(1000); 
}

leider bekomme ich nur folgendes :

also die vorher eingespeicherten Werte. TX und RX sind wie im Code angeschlossen. PPS ist unbelegt. Kann es villeicht daran liegen, dass ich den Sensor erst mit 5V betrieben habe? Hatte mich da leider verlesen. Es leuchtet durchgegehend nur die Orangene LED.

Hat jemand vllt. einen Sketch für mich, um zu testen ob der Arduin überhaupt mit dem Sensor kommuniziert?

Danke im Vorauß!

Sketch.ino (1.27 KB)

bevor du es über einen Arduino probierst, häng mal den NEO "direkt" (über einen TTL-USB Wandler) an den PC und lies es mit der UBLOX Software aus - klappt das?

Und wieso hast du in deinem Sketch 2 Libraries für das LCD eingebunden ?

So, ich habe gerade mal meinen Arduino zum TTL Converter ,,umgebaut" Ich kann mit Ublox mir tatsächlich meine Position anzeigen lassen. Das funktioniert.

Das mit den beiden Libaries ist weil Original ein Display ohne I2C verwendet wurde. Habe den Code entsprechend angepasst und diese Zeile wohl vergessen.

Auch beim Position bestimmen blinkt nur die RX-Led am Arduino. Die am GPS Sensor leuchtet durchgehend.

EDIT:

Das zeigt mir Ublox an wenn ich unter ,,Receiver" auf ,,Location" API klicke... Koordinaten habe ich wegen Datenschutz mal zensiert.

Hey, stehe gerade auf den Schlauch. Weiß nicht genau, was du mit SoftSerialRX meinst.
Hab halt RX vom NEO an 3 und TX vom NEO an 4

Habe aber gerade auch mal probiert RX an 0 und TX an 1 und das im CODE entsprechend angepasst aber das bringt nichts.

Hat nicht wer einen Sketch den er selber mal mit dem NEO 6M von Ublox getestete hat

Also laut Herstelleranleitung liefert es 9600 Baud, ja. Habe es ha auch mit der ublox Software unter 9600 Baud nutzen können.

Den Code vom GPS Tacho kann ich leider nicht ganz nachvollziehen... Da er mit SPI und nicht mit I2C arbeitet. Kenne mich auch zu wenig aus um da Brücken zu schlagen.

Habe jetzt noch folgenden einfachen CODE probiert

#include "TinyGPS++.h"
#include "SoftwareSerial.h"

SoftwareSerial serial_connection(3, 4); //RX=pin 3, TX=pin 4
TinyGPSPlus gps;//This is the GPS object that will pretty much do all the grunt work with the NMEA data
void setup()
{
  Serial.begin(9600);//This opens up communications to the Serial monitor in the Arduino IDE
  serial_connection.begin(9600);//This opens up communications to the GPS
  Serial.println("GPS Start");//Just show to the monitor that the sketch has started
}

void loop()
{
  
    //Get the latest info from the gps object which it derived from the data sent by the GPS unit
    Serial.println("Satellite Count:");
    Serial.println(gps.satellites.value());
    Serial.println("Latitude:");
    Serial.println(gps.location.lat(), 6);
    Serial.println("Longitude:");
    Serial.println(gps.location.lng(), 6);
    Serial.println("Speed MPH:");
    Serial.println(gps.speed.mph());
    Serial.println("Altitude Feet:");
    Serial.println(gps.altitude.feet());
    Serial.println("");

  delay(3000);
}

leider bekomme ich doort nur 0en. Habe auch schon TX und RX währenddessen getauscht. Wo kann nur der Fehler liegen? Wenn es mit Ublox doch geht?

Hey,

vielen Dank für deine Mühe. Leider bekomme ich keine Sateliten rein, bin auch schon mit dem Auto rumgefahren. Dabei bekomme ich selbst im Haus mit ublox eine Verbindung. Habe TX von Neo an 0 (RX) von UNO und RX vom NEO an 1 (TX) vom Arduino. Witzigerweise blinkt jetzt immer die TX Led....

Hätte noch Fragen zu deinem Code:

Warum werden da nicht die seriellen Anschlüsse für den Sensor festgelegt? Sind die dann automatisch bei 0 und 1?

Ich tippe hier einfach auf die falsche Baudrate.
Das Problem hatte ich seinerzeit auch: ab und zu "vergisst" das Neo die Einstellungen wieder (wahrscheinlich werden die nur akkugepuffert gespeichert, ne andere Erklärung hab ich nicht gefunden), wenn der also leer ist, muss man es neu konfigurieren.
Das geht entweder mit dem U-Center, oder aber man klamüsert die nötigen Daten zusammen und schickt sie bei jedem Start vom Arduino aus. Letzteres ist allerdings recht tricky.

Krücke hierzu (um rauszufinden, ob es der Knackpunkt ist): einfach die serielle Verbindung mal im Programm mit unterschiedlichen Geschwindigkeiten laufen lassen, und gucken, ob irgendwann was brauchbares kommt...

Nebenbei aufgefallen: 10Hz? Kann das Neon 6m nicht, maximal 5.
Und ich gehe nicht von aus, dass der Chip noch weiter entwickelt wird?
Oder ist es ein Neo 6p?? Das wäre noch zu ganz anderem fähig (wobei ich das mit der Geschwindigkeit nicht weiss, aber das p unterstützt z.B PPP, was das m definitiv nicht tut).

Hallo,

bin jetzt Heute dazugekommen es mal auszuprobieren.

Habe also den Arduino zum TTL Converter umgebaut (RESET mit GND verbunden) und mit ucenter wieder ausgelesen. Interessant ist, das wie auch beim letzten mal es nur funzt wenn ich TX an TX und Rx an Rx anschliesse. Habe über den Serial Monitor folgende Ausgabe (Bei nur einem Sateliten)

Hat jemand einen Tip für mich wie ich den NEO am besten im ucenter kalibrieren kann?

Lieferst Du jetzt auch das Mikroskop, um Deine Minischrift zu entziffern?
Wie kann man nur auf den Gedanken kommen einen Text (den man aus dem seriellen Monitor raus kopieren und hier in Codetags einfügen kann) als Screenshot anzuhängen. Aber keine Sorge, Du bist nicht der Erste mit dem unsinnigen Gedanken und wirst wohl auch nicht der letzte bleiben. :wink:

Mach das bitte mal lesbar.

Gruß Tommy

Man kann doch einfac Rechtsklick-> ,,Grafik Anzeigen" dann kann man reinzoomen

Aber okay....

$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,2,1,06,02,,,18,05,,,29,08,,,26,09,,,31*7E
$GPGSV,2,2,06,23,,,29,31,,,30*74
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,3,1,09,01,,,29,02,,,17,05,,,26,07,,,29*71
$GPGSV,3,2,09,08,,,25,09,,,29,15,,,16,16,,,26*7C
$GPGSV,3,3,09,23,,,22*71
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,3,1,12,01,,,26,02,,,26,04,,,26,05,,,25*79
$GPGSV,3,2,12,07,,,26,08,,,23,09,,,25,12,,,24*7A
$GPGSV,3,3,12,16,,,24,21,,,26,23,,,22,31,,,23*7E
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,3,1,12,01,,,09,02,,,08,04,,,09,05,,,21*71
$GPGSV,3,2,12,07,,,09,08,,,20,09,,,07,12,,,21*71
$GPGSV,3,3,12,16,,,21,21,,,09,23,,,19,31,,,20*7D
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,03,04,,,24,12,,,18,21,,,20*73
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,2,1,07,02,,,20,03,,,26,05,,,25,08,,,16*77
$GPGSV,2,2,07,10,,,25,18,,,25,21,,,16*72
$GPGLL,,,,,,V,N*64

Und gerade noch mal mit mehr Sateliten:

$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,HW  UBX-G60xx  00040007 FF7FFFFFp*53
$GPTXT,01,01,02,ROM CORE 7.03 (45969) Mar 17 2011 16:18:34*59
$GPTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*20
$GPTXT,01,01,02,ANTSTATUS=DONTKNOW*33
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPTXT,01,01,02,ANTSTATUS=INIT*25
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPTXT,01,01,02,ANTSTATUS=OK*3B
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30

hier findest Du die Erklährung der NMEA- Daten: Welcome gpsinformation.org - Hostmonster.com

"$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30"

Die 1 nach dem A sagt daß das Modul nicht auf Satelliten synchronisiert ist.

GSA Satellite status
A Auto selection of 2D or 3D fix (M = manual)
1 3D fix - values include: 1 = no fix
2 = 2D fix
3 = 3D fix

Ein GPS Empfänger braucht nach dem Einschalten mindestens 1 Minute, bei schlechtem Empfang auch mehrere Minuten um die Bahndaten der Satelliten zu empfangen und dann daraus die Position zu errechnen.
Wie Lange dast Du das Modul eingeschaltet gelassen?

Wenn Du für das Modul 4$ in China ausgegeben hast, dann glaube ich ist es gefälscht.
Ist es dieses Modul? https://www.ebay.it/itm/GYNEO6MV2-GPS-Module-NEO-6M-GY-NEO6MV2-Board-with-Antenna-for-Arduino-/311772823171

Grüße Uwe

Naja, kaufs'te billig, kaufs'te 2 mal.

Gerade den Kameraden hier über Prime geordert LINK

Danke damit müsste es gehen.

Ja, habe den über China bestellt. Hätte nicht gedacht, dass es daran liegt. Aber naja, Freitag werde ich den neuen erhalten und dann weiter testen. Ich werde euch auf dem laufenden halten!

PS: Den hier habe ich momentan : KLICK

Denk ich auch- genau so eins hab ich hier- damals gab es die entweder mit lose rumschwirrender Antenne, oder sie war hinten rauf geklebt (mit doppelseitigem Klebeband).
Pass mit dem Antennenkabel etwas auf, das ist nicht ganz unempfindlich....
Ansonsten läuft das Teil wunderbar.