Conversione di una stringa in un array e successivamente in int

Per "non riesco a convertirlo" intendo che mi da errore il compilatore dicendo che non posso convertire string to int

Allora la composizione della stringa è fissa, quindi sono sicuro dei valori che gli passerò.

assegna = valori.substring(0,1);                                                                                                                                               
String fresh_from_serial = assegna;
char this_char[fresh_from_serial.length() + 1];
fresh_from_serial.toCharArray(this_char, sizeof(this_char));
int my_integer_data = atoi(this_char);
statogoccia2=my_integer_data;
lcd.print(my_integer_data);

con questo codice riesco a prendere il primo 1, ho fatto anche prove cambiando il primo carattere mettendoci lo 0 e funziona

assegna = valori.substring(2,1);                                                                                                                                               
String fresh_from_serial = assegna;
char this_char[fresh_from_serial.length() + 1];
fresh_from_serial.toCharArray(this_char, sizeof(this_char));
int my_integer_data = atoi(this_char);
statogoccia2=my_integer_data;
lcd.print(my_integer_data);

passando al secondo 1 ritorna sempre 0 stessa cosa per tutti gli altri valori che vado ad estrarre, se stampo assegna mi stampa una cosa del genere
" 1 " (spazi prima e dopo) ma valori.substring(2,1); prende solo 1 carattere giusto dalla posizione 2?