Scusate, non capisco.....
l'esempio del 04 era solo per la prova, in realtà userò le uscite dal 20 al 40 di arduino mega quindi mi servono 2 cifre....
ho provato al funzione atoi ma al momento della verifica mi restituisce l'errore
error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
Ops: hai dichiarato le stringhe come String, non come array di caratteri...
Immagino tu voglia usare String perché così hai a disposizione 'substring'
Ti ho scritto una funzione che ti fa la stessa cosa con un array di caratteri, così puoi chiamare atoi

#include <stdio.h>
#include <stdlib.h>
char *output;
char *splitString(char start, char stop, char* string)
{
char *output = (char *) malloc(stop-start+1);
char a = 0;
char i;
for (i = start; i <= stop; i++)
{
output[a++] = string[i];
}
return output;
}
int main()
{
char *string = "123";
int intero = atoi(splitString(0,3, string));
printf("%d", intero);
}
Dichiari fuori da qualsiasi funzione la stringa output.
Poi incolli la funzione splitString all'inizio del listato (subito dopo le variabili globali).
Infine la richiami: prende tre valori (da dove iniziare, dove finire, la stringa su cui operare) e restituisce una stringa con cui puoi fare quello che ti pare

È un po' un workaround, ma funziona
