Come leggere dei Float da una seriale

grazie per i vari interventi :slight_smile:
astrobeed is è vero che sulla Razor IMU c'è un 328, ma tale sensore comunica con il mondo "esterno" tramite seriale o in "Wire" per cui non mi serve modificare il SW interno a sensore :slight_smile:
Ho guardato in giro e ho scritto 2 righe di programma che è il seguente :

String Str_Sensore = String("#YPR=1.71,0.32,2.26");

int Pos_Carattere_1;
int Pos_Carattere_2;
int Pos_Carattere_3;

String Di_Servizio_1;
String Di_Servizio_2;
String Di_Servizio_3;

float Variabile_1;
float Variabile_2;
float Variabile_3;

void setup() {

Serial.begin(9600);

delay(3000);

Serial.println(Str_Sensore);

Pos_Carattere_1 = Str_Sensore.indexOf('='); // trova la posizione di "="
Pos_Carattere_2 = Str_Sensore.indexOf(',', Pos_Carattere_1 + 1); // trova la posizione della prima virgola
Pos_Carattere_3 = Str_Sensore.indexOf(',', Pos_Carattere_2 + 1); // trova la posizione della seconda virgola

Di_Servizio_1 = Str_Sensore.substring(Pos_Carattere_1 + 1, Pos_Carattere_2 ); // leggo il valore che mi interessa
Di_Servizio_2 = Str_Sensore.substring(Pos_Carattere_2 + 1, Pos_Carattere_3 ); // leggo il valore che mi interessa
Di_Servizio_3 = Str_Sensore.substring(Pos_Carattere_3 + 1 ); // leggo il valore che mi interessa

//Variabile_1 = atof(Di_Servizio_1.getChars());
//Variabile_2 = atof(Di_Servizio_2.getChars());
//Variabile_3 = atof(Di_Servizio_3.getChars());

Serial.println(Di_Servizio_1); // per controllare se la separazione sia avvenuta con successo
Serial.println(Di_Servizio_2);
Serial.println(Di_Servizio_3);

}

void loop() { }

con questo riesco a separare i vari valori , ma restano ancora delle strighe, non riesco a convertirle in variabili float vere propie ,
ho provato usate la funzione "atof()" , ma il compilatore mi da un errore , che il seguente :

'Class String' has no member named'getChars'

Ho cercato in internet la funzione "atof()" , funzione di C, ma non ho capito come usarla in Arduino :slight_smile: