Tinygps++ wie beklomme ich z.B.diese daten Serial.println(gps.location.lng(),6);

in eine Variable , brauche die 50.xxx 7.5xxx usw für Umrechnung in anderes System.

Serielle Ausgabe geht natürlich, ja klar -
bei tinygps ohne ++ gibt es Beispiele,

aber es für die ++ Version umzusetzen ist mein Wissen zu gering.

die Daten in je eine varibale;( wenn ichs richtig sehe, geht das so als Ascii String über die serielle )

Serial.println(gps.location.lng(),6);
Serial.println(gps.location.lat(),6);

Danke fürs lesen und eventuelle Antworten

Was wollst du uns sagen??

Das musst du schon genauer beschreiben. Deine Variablen scheinen float zu sein. Das passt doch für weitere Rechnungen. In welchem Format und/oder Datentyp brauchst du sie genau?

Lesen ist kein Problem,
Raussuchen was tinygps und der Unterschied zu tinygps++ ist, schon eher. :wink:

50.xxx und 7.5xxx sind vermutlich Koordinaten. Und du hast richtig erkannt, dass der Variablentyp eine Rolle spielt. Seriell werden Texte übertragen, wo jede Ziffer in Wirklichkeit ein Buchstabe ist.

"Umrechnung in anderes System" ist bei dir vermutlich Dezimalgrad -> Grad Minute Sekunde ?
Rechnen geht einfacher mit Zahlen als mit Texten. Wobei float nur eine begrenzte Genauigkeit hat, so dass du am besten den Nachkommateil separat behandelst.

So würde ich eher den Text " 50.zyxwvu" auf ein '.' absuchen und aus den folgenden Ziffern eine Zahl machen. Das ist nicht schwer, aber mühsam, wenn du es zu Fuß machst und nicht genau weisst, wie viele Ziffern du erwartest.

Laut dem print() Aufruf ist das aber glaube ich schon Float:

Serial.println(gps.location.lng(),6);

6 dürfte die Anzahl der Nachkommastellen sein

So nochmal genauer, 7.xxx175 51.xxx023 - also 6 nachkomma Stellen -

die bekomme ich über die serielle Schnittstelle von der tinygps++ Ardunino - PC Monitor

Mein Problem ist die Umwandlung des ""String's ( Serial.println(gps.location.lng(),6);"" in eine Zahlenkette zur ausgabe auf einen lcd Display am Arduino.

in eine Zahlenkette zur ausgabe auf einen lcd Display am Arduino.

LCDs können normaler Weise Strings und auch Floats ausgeben.

Suchst du atof() ??

ja das geht - direkt auf LCD , muss sie aber ( möchte ) sie umrechnen in's Maidenhead Grid , brauche echte Zahlen - irgendwie hab ich da noch nen Denkfehler drin.
Auf den seriellen Monitor sehe ich die Zahlen die man verarbeiten könnte , komme da aber nicht dran.

schaue mir mal atof an

Du hast schon eine Zahl. Schau dir doch mal die Funktionen in tinygps an:

   double lat();
   double lng();

Es ist print() (aus der Print Klasse) das das in ASCII wandelt.

Wenn deine LCD Klasse auch mit der Arduino print() Funktion arbeitet (was z.B. die 16x2 oder 20x4 Displays tun), dann geht das genauso. Manche Display Libraries wie UTFT für TFTs haben eigene Konvertierungsfunktionen wie printNumF().

Wenn man es per Hand machen muss geht es mit dtostrf()

atof() ist um C Strings in Floats zu wandeln. Das ist verkehrt. Kommt aber von deiner falschen Beschreibung.

Ein anderes Problem ist die begrenzte Genauigkeit.
50.123456 ist jenseits der Genauigkeit eines float32, aber 0.123456 passt grade noch so.

(Wenns dir nicht auf die Zehntel-Sekunde ankommt, ignoriere den Einwand.)