Pulire la memoria

Buon giorno ho un arduino uno e tutte le volte che carico uno sketch mi rimane in memoria , nel senso che il giorno dopo ricollego UNO all'usb e mi ripete le ultime istruzioni, io vorrei azzerare tutto quando finisco i test , prima di metterlo via.
poi non so se è in relazione, ma adesso non mi carica + nulla fa la compilazione e alla fine mi da questa scritta:
Dimensione del file binario dello sketch: 790 bytes (su un massimo di 32.256 bytes)
avrdude: stk500_getsync(): not in sync: resp=0x30
che vuol dire? che ho esaurito la memoria?
lo fa con qualsiasi programma che prendo dagli esempi ultimo caricato eeprom_clear , ma nulla.
Sapete cos'è successo?
grazie :slight_smile:

  1. la memoria del programma è una FLASH ed è quindi NON volatile, è giusto che non ti perda il programma memorizzato perché se ogni volta che lo stacchi dall'alimentazione il chip perdesse il programma... immagina i chip montati sui dispositivi, che funzionano solo finché non va via l'alimentazione :stuck_out_tongue_closed_eyes:

  2. non hai esaurito la memoria, probabilmente hai caricato uno sketch che impegna la seriale e quindi il computer non riesce ad aprire la comunicazione con la scheda per spedire il nuovo sketch.
    Prova queste istruzioni, la Manovra d'Emergenza:
    Arduino non si resetta e non comunica col pc - #5 by leo72 - Generale - Arduino Forum

Buon giorno Leo , ok capito che è una FLASH , perciò deve stare così , ho eseguito il tuo metodo più volte, ma nulla ,alla fine ho guardato la porta e quì , ho visto l'errore , era sulla COM sbagliata , ma prima era giusta , poi mi sono ricordato che avevo caricato uno sketch appena prima ma non avevo collegato l'USB , credo allora che si sia commutato sull'altra porta cercando un'output, a me da COM3 e COM4 , non mi ricordo quella aperta quale era , cmq cambiando la porta ora funziona :slight_smile: (lo scrivo casomai succedesse ad altri).
poi ho trovato uno sketch "EEPROM CLEAR" ma non so di preciso se mi cancella tutto anche l'IDE quindi non lo faccio.
in internet ho trovato un video dove diceva di jumperare i 2 pin vicino al tasto reset , ma anche questo non mi fido , se non so .
vabbe credo sia tutto e avanti con le esperienze :slight_smile:
grazie :slight_smile:

Le EEPROM è una seconda memoria non volatile (quindi non si cancella se togli l'alimentazione) dove è possibile registrare dati. Di solito è usata per valori di calibrazione o configurazione del programma.
Lo sketch che citi serve semplicemente per ripulirla. Ma se non ci hai mai scritto, dovrebbe essere vuota.
Ricordati che la scrittura e la lettura della EEPROM avviene per singola cella (l'ATmega328P, il micro di Arduino ne ha 512) e ogni cella può essere letta infinite volte ma scritta solo circa 10'000. Dopo tale sogli non è garantito che il valore scritto nella cella sia recuperabile.
L'altra questione di cui parli (jumper dei due pin vicino al reset) serve per riscrivere il firmware del convertitore seriale/USB (il 16U2) che a volte potrebbe dare problemi di comunicazione. Ma non è stato quello il tuo caso.

@Paolo:
la EEPROM ha un valore garantito di riscritture di 100.000, è la Flash che ne ha 10.000

@ManyGold:
lascia stare la Flash del chip :D; come detto qui sopra, ha 10.000 cicli di riscrittura poi può iniziare a dare problemi. I microcontrollori sono fatti per essere programmati e per conservare il loro programma. Se vuoi usare l'Arduino per un altro progetto, semplicemente sovrascrivi lo sketch quando ti serve e non così tanto per "pulire la memoria" :wink:

leo72:
@Paolo:
la EEPROM ha un valore garantito di riscritture di 100.000, è la Flash che ne ha 10.000

:grin:

Cmq risolto grazie a tutti :slight_smile: