133 kbyte di sorgente Arduino??? Ma chi l'ha scritto, Dante Alighieri?

Mi aspettavo che finisse con "..e uscimmo a riveder le stelle!".
Scherzi a parte, tralasciando il tuo problema (la cui causa mi pare legata appunto all'uso di while, ma sinveramente tremilaseicento righe sono troppe per me...), ti dò solo alcuni piccolissimi consigli.
Primo, va bene rendere autoesplicativi i nomi delle variabili, ma qui si esagera! Per dire, "tempoTotSvolgiTendaGRANDECENTRO" si può anche un poco ridurre, mantenendo comunque la leggibilità (tanto più se, come hai fatto, hai dei commenti che la descrivono).
Secondo, devi imparare a gestire gli array, non è possibile fare sbrodolate di decine e decine di variabili con nomi diversi (oltre che chilometrici) per tutte le possibili combinazioni! E questo vale pure per le #define, ad esempio se tu vuoi impostare i 47 pin inutilizzati creati un array di byte invece di 47 righe #define, ti basta definirli tutti con UNA sola riga:
const byte sensore[47] = {55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,2,11,12,13,16,17,18,24,25, ...eccetera...};
A quel punto nel codice per inizializzare i pin invece di altre 47 righe ti basta fare un ciclo for, ossia DUE righe:
...
//imposto i pin inutilizzati con pullup interna
for (int i=0; i<47;++i)
pinMode(sensore[i], INPUT_PULLUP);
...
Poi una cosa analoga per altre cose, come i flag di attivazione, srotolamento, arrotolamento, reset.
Per finire, quando hai un codice abbastanza grande, non dico di fare programmazione ad oggetti (che non sarebbe affatto male, ma tralasciamo..) ma dividilo almeno in file *.h nei quali metterai variabili e funzioni coerenti (ossia nello stesso file "cose" che riguardano e gestiscono una stessa funzionalità), che includerai nel modulo principale con #include.
Tutto questo serve non solo per rendere più "snello" il codice e quindi più facile da comprendere (soprattutto per le altre persone, come noi, che magari vogliono aiutarti ma di fronte a quasi 4.000 righe uno o si prende mezza giornata di ferie o rinuncia...

), ma anche per consentire a te stesso di fare debug, ossia tracciare la logica del programma ed identificare dove possa essere il problema.
Capisco che ora mettere mano a questo codice sia un calvario, per cui prendi questi spunti quantomeno per i prossimi progetti...
