Freeze con connessione seriale

Salve a tutti. Ho da pochissimo una Arduino Uno e mi sto divertendo con i vari codici di esempio.

Ho però un problema. Ogni volta che uploado un codice che usa la porta seriale noto un comportamento un po' strano. Il codice funziona ma, quando cerco di spedirne un altro, la scheda riesegue il codice in memoria e cerca di aprire una connessione in TX verso il computer mentre l'IDE cerca di aprire una connessione verso la scheda, bloccando tutto... Per sbloccare la cosa devo aprire un terminale, far eseguire alla scheda il suo compito dopodiché essa "accetta" il nuovo programma dalla seriale.

Anzi, alle volte neanche così. Se la funzione di comunicazione è nella procedure Loop() allora il blocco è perenne... devo ripetutamente provare a fare l'upload sconnettendo e riconnettendo la scheda finché non so come riesco a farlo.

Non so aiutarti nel perticolare visto che non ho un UNO. Mi sembra un problema di reset. Prova in fase di upload (quando lo lanci dal IDE) di premere il tasto reset sul Arduino. Ciao Uwe

E' successo anche a me con l'Arduino Mega e con il 2009, il problema è che il tuo programma tenta di scrivere/leggere continuamente sulla seriale e siccome quando trasferisci un programma lo fai proprio attraverso la seriale i dati si scontrano e fanno casino. Io ho risolto così:

  • Prima di uploadare il nuovo programma stacca tutto ciò che eventualmente hai collegato ai piedini TX e RX io per esempio ho collegato un MAX485, se usi la seriale solo per trasmettere dati al pc attraverso la porta usb non c'è bisogno di scollegare niente.
  • Premi il tastino UPLOAD sull'IDE per trasferire il nuovo programma e appena esce la scritta bianca che ti dice la dimensione dello sketch che stai trasferendo premi il pulsante reset sull'arduino.

Facci sapere se sei riuscito !

Sì, effettivamente bisogna un po' giocare sui tempi, saltando dal pulsantino di upload a quello di reset della scheda.

Però è un po' una fregatura che non esista un pulsante di "hard reset", che svuoti la memoria dell'Atmega di eventuali programmi caricati dall'utente.

Le prime volte che mi era capitato questo problema era usando gli esempi allegati all'IDE, e credevo di aver "bruciato" la mia Uno. Penso che anche altri abbiano avuto lo stesso problema giungendo ad una conclusione (errata) simile alla mia.