Conversione da String a int

sembra una domanda assurda ma non capisco come mai questa cosa sia cosi complicata…

vi allego il mio codice esempio dove genero una stringa fatta solo di 1 (String) e poi cerco di convertirli:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
String a="";
int b=0;
for (int i=0;i<20;i++)
{
  a=a+'1';
  b=a.toInt(a);
  Serial.print(a);
  Serial.print("      ");
  Serial.println(b);
}
}

void loop() {
  // put your main code here, to run repeatedly:

}

io mi aspetterei che entrambe le parti printate siano uguali ma non lo sono!
Cosa sbaglio?

Ho bisogno de gestire tali stringhe come numeri e devo comunque partire da String
Grazie

Ma non sarà che pretendi troppo da un int ? Un int accetta solo numeri tra -32768 e +32767 quindi la String "1111111" viene convertita male Devi usare long (infatti la toInt() ritorna un numero long che poi tu "castri" a int )

Questo non mi torna:

b=a.toInt(a);

il metodo toInt() della classe String non prende nessun parametro, per quanto ne so. Compila?

A parte questo, quanto dice nid è corretto. Dovresti avere l'output che ti aspetti fino a 11111, ma da quello successivo in poi sbarella tutto!

b=a.toInt();

errore di scrittura

Perfetto data la lunghezza dei miei dati alla fine ho potato per i long. quindi utilizzando toCharArray() e in fine strtol