Salvare i dati GPS su variabili.

Ciao Leo,
ti rigrazio ho risolto convertendo la variabile val da float a testo con la seguente funzione:

String ftoa(float number, uint8_t precision, uint8_t size)
{
  //Prints val with number of decimal places determine by precision
  //precision is a number from 0 to 6 indicating the desired decimial places
  //example: printDouble(3.1415, 2); // prints 3.14 (two decimal places)
  //Added rounding, size and overflow #
  //ftoa(343.1453, 2, 10) -> "    343.15"
  //ftoa(343.1453, 4,  7) -> "#      "

  String s = "";

  // Negative 
  if (number < 0.0)
  {
    s = "-";
    number = -number;
  }

  double rounding = 0.5;
  for (uint8_t i = 0; i < precision; ++i)    rounding /= 10.0;

  number += rounding;
  s += String(uint16_t(number));  // prints the integer part

  if(precision > 0)
  {
    s += ".";                // prints the decimal point
    uint32_t frac;
    uint32_t mult = 1;
    uint8_t padding = precision -1;
    while(precision--)     mult *= 10;

    frac = (number - uint16_t(number)) * mult;

    uint32_t frac1 = frac;
    while(frac1 /= 10)    padding--;
    while(padding--)      s += "0";

    s += String(frac,DEC) ;  // prints the fractional part
  }

  if (size>0)                // checks size
    if (s.length()>size)        return("#");
    else while(s.length()<size) s = " "+s;

  return s;
}

Questo è il punto dove viene richiamata:

static void print_float(float val, float invalid, int len, int prec)
{
  char sz[32];
  if (val == invalid)
  {
    strcpy(sz, "*******");
    sz[len] = 0;
        if (len > 0) 
          sz[len-1] = ' ';
    for (int i=7; i<len; ++i)
        sz[i] = ' ';
    //Serial.print(sz);
    datigps += String(sz);
  }
  else
  {
    //Serial.print(val, prec);
    String temp = ftoa(val, prec, 10); //<-- <-- <-- Qui!
    temp.trim();
    datigps += temp;
    int vi = abs((int)val);
    int flen = prec + (val < 0.0 ? 2 : 1);
    flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
    for (int i=flen; i<len; ++i)
    {
      //Serial.print(" ");
      datigps += " ";
    }
  }
  feedgps();
}

Grazie ancora e a presto.

Alessandro