Prendo un pezzo di codice a caso.
// LED DRIVING /////////////////////////////////////////////
col=strip.Color(0, 127, 0); //green //
for(i_led=0; i_led<strip.numPixels(); i_led++) //
{ //
strip.setPixelColor(i_led, 0); //
} //
lednumber=map(L,0,1010,1,nLEDs); //
for(i_led=0; i_led<lednumber; i_led++) { //
strip.setPixelColor(i_led, col); //
} //
strip.show(); // Refresh to turn off last pixel //
// end LED Driving //////////////////////////////////////////
i_led è una variabile globale, ma non la usi in modo globale, vero?
Qui la dichiari così int i_led=0; pensi che come di seguito potrebbe funzionare?
// LED DRIVING /////////////////////////////////////////////
{ // apre un blocco tutto quello che viene creato qui scompare alla fine del blocco
byte i_led = 0; // al termine del blocco i_led viene rimosso dallo stack
col=strip.Color(0, 127, 0); //green //
for(i_led=0; i_led<strip.numPixels(); i_led++) //
{ //
strip.setPixelColor(i_led, 0); //
} //
lednumber=map(L,0,1010,1,nLEDs); //
for(i_led=0; i_led<lednumber; i_led++)
{ //
strip.setPixelColor(i_led, col); //
} //
strip.show(); // Refresh to turn off last pixel //
} // chiude il blocco
// end LED Driving //////////////////////////////////////////
Il codice è ben documentato. Ci sono alcune cose che andrebbero sistemate prima di pensare di dividere il codice in funzioni e tab. Potresti creare una tab initialize e dentro metterci delle funzioni che inizializzano le varie parti, funzioni che chiamerai da dentro setup(). Questo snellirebbe la funzione setup e inoltre se hai problemi con l'inizializzazione sai in quale tab cercare.
Vedi di usare sempre meno variabili globali. Quasi sempre le variabili indice del for e meglio che siano locali,
se non vuoi usare i blocchi {} puoi creare e inizializzare una variabile indice anche nella istruzione for: for (int i_led=0; i_led<...
Al momento usi dei rientri per evidenziare del codice che magari scorrendo con la rotella te lo perdi di vista, risolvi parzialmente con l'indentazione, ma non è cosa consueta e alla fine porta confusione. Per il momento continua così, vediamo se è possibile creare qualche function per snellire il codice usando al contempo meno ram, o meglio usando la ram strettamente necessaria.
Qual'è il motivo che ti porta a volere usare le tab? noti una difficoltà nello sviluppo del codice?
Ciao.