Stoppare ciclo for

Grazie, ricambio.

Il problema è che non parliamo la stessa lingua e chi deve imparare la mia sei tu.

Tutti i construtti che realizzano un ciclo (while, do while, for) permettono di specificare una condizione che se vera mette il codice in loop (ciclo) se la condizione è falsa si esce immediatamente dal ciclo e come conseguenza viene eseguita l'istruzione presente dopo il blocco che realizza il ciclo. Per uscire da qualunque ciclo esiste l'istruzione "break" che quando eseguita termina il ciclo e prosegue con la prossima istruzione. Quindi il ciclo non viene "stoppato", cioè fermato, ma semplicemente si esce dal ciclo.

Non ha senso inserire un tuo ciclo infinito all'interno della funzione loop() perchè questa deve poter operare, diversamente potresti avere comportamenti errati del tuo sketch, al momento non credo che tu abbia necessità di creare una loop interno alla funzione loop(). Comunque puoi usare un while (1) {} ciò che scrivi dentro le parentesi graffe verra eseguito in ciclo per sempre, ma la funzione loop non tornerà mai al chiamante.

All'interno di qualunque construtto per il ciclo puoi usare, if o switch per testare lo stato di un pin grazie a digitalRead e se la condizione e vera inserendo un break il ciclo verrà terminato.

Lo peseudo code:

// stampa a video o su seriale o in altro posto una sfilza interminabile di "ciao mondo", per sempre.
while (1)
{
stampa("ciao mondo");
}

loop()
{

byte i;
while (1)
{
stampa("ciao mondo");
i++;
// se "i" è maggiore di 10, cioè appena "i" diventa 11, viene eseguita la break che esce dal ciclo, ma ci rientrerà
// subito dopo a causa della funzione loop() che una volta terminata verrà nuovamente chiamata e così via per sempre
if (i > 10)
break;
}

}

Però mi sembra che gli esempi di codice presenti nell'ide tu non li abbia neanche guardati, sai sono molto utili e utile è modificarli,
pasticciarli e poi rimetterli a posto come in origine.

Ciao.