Programma non viene eseguito su arduino UNO r3

Ho fatto questo programmino (mooooolto stupido, ma moooolto lungo) che fa accendere un led ed un piccolo motore per un determinato tempo stabilito tramite un comando seriale. Ho poi aggiunto un pulsante (quello chiamato pippolo) che accende il motore ed il led non appena viene premuto e un’altro led che segnala quando il arduino è pronto per ricevere un comando. Infine ho aggiunto un programma di test (richiamabile scrivendo t dalla porta seriale) e le istruzioni nel void setup che vengono riscritte al termine di ogni programma (e richiamabili scrivendo i ). Invio tutto all’arduino per eseguirlo e… Nulla!!!
Ho provato a “snellire” il programma ma nulla…
perché non parte?

P.S.: Vi allego il programma del file.txt perché sennò supero il massimo dei caratteri consentiti

senza titolo.txt (19.1 KB)

Troppo grande, a causa delle frasi molto lunghe. Arduino Uno ha uno spazio di memoria delle variabili limitato (2Kb).
Per le frasi dei print/println puoi usare la funzione F(), in questo modo prendono spazio nella memoria del codice che è maggiore (32Kb).

Serial.println(F("Controlla che il led si accenda"));

Inoltre questo spazio non serve a nulla, sprechi solo memoria, bastano i 2 doppi apici senza nulla dentro:

Serial.println(" ");

Dopo una sistematina perchè il codice pubblicati è incompleto, compilando con la 1.5.5 ottengo:

Lo sketch usa 8.418 byte (26%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 1.991 byte (97%) di memoria dinamica, lasciando 57 byte liberi per le variabili locali. Il massimo è 2.048 byte.
Poca memoria disponibile, potrebbero verificarsi problemi di stabilità

In effetti usi troppe scritte statiche, segui il consiglio di Nid. Per velocizzare il cambio usa la funzione dell'IDE trova e sostituisci.

PaoloP
perché usi l'IDE 1.5.5 per Arduino UNO?
Alla fine di questo test non cambia niente ma potrebbe avere altri problemi.
Ciao Uwe

uwefed:
PaoloP
perché usi l'IDE 1.5.5 per Arduino UNO?

Perché mostra il quantitativo di memoria flash occupato e l'occupazione delle variabili statiche nella RAM. E' comodo.
E poi tra la 1.0.5 e la 1.5.5 c'è un abisso in termini di correzioni e nuove funzionalità.
Inoltre in alcuni casi hanno ottimizzato il codice che permette di avere file compilati di dimensioni minori della 1.0.5.
E poi mi piace sperimentare.

PaoloP.
p.s. spesso uso anche le Nightly Builds. :grin: