Nono aspetta un momento, mi sarò spiegato male io sicuramente!
Dunque le cose stanno così:
1) attacco Arduino al PC (altrimenti ne il monitor seriale del suo IDE ne il programma in C riescono a connettersi perchè la porta COM9 rimane giustamente chiusa se non collego dispositivi ad essa)
2) una volta attaccato arduino, apro il monitor seriale del suo IDE per controllare se effettivamente funziona (lo sketch è semplicissimo: mi da i valori di una fotoresistenza collegata ad esso e scrive "X" se il valore della fotoresistenza sale oltre una certa soglia)
3) a questo punto CHIUDO il monitor seriale di Arduino e APRO l'exe che ho costruito con C (naturalmente una porta seriale "supporta" un accesso alla volta, quindi se io ho aperto il monitor seriale di Arduino la COM9 è "occupata" e se apro il programma C mi dice appunto che non può aprirla perchè è già aperta da un altra parte. Viceversa se il programma C è in funzione, non posso accedere contemporaneamente anche al monitor seriale di Arduino perchè naturalmente la risorsa COM9 è aperta da un altra parte. In poche parole se uso il monitor seriale non posso usare il prog C e se uso il programma C non posso usare il monitor seriale perchè la porta non "regge" 2 accessi contemporaneamente. Ma fin qui è tutto normale, deve essere così)
I problemi sorgono quando "inverto" i punti 2) e 3) ovvero:
Siccome Arduino è dotato di una memoria che, anche se lo scolleghi e ricolleghi successivamente, gli permette di rieseguire l'ultimo sketch caricato (senza stare quindi a caricare ogni volta lo stesso sketch), se io lo stacco dalla usb e lo ricollego in seguito, lui dovrebbe riprendere a funzionare normalmente (ed infatti i led sull'Arduino che si illuminano quando invia/riceve dati cominciano a funzionare da soli, quindi Arduino sta effettivamente eseguendo quello sketch) dunque se io aprissi il programma C non dovrebbe darmi problemi: alla fine esegue una connessione sulla porta dove è connesso anche lui e ne preleva le informazioni.
Invece non è così, mi da una serie di caratteri incomprensibili e non funziona, ovvero non riesce a "decifrare" quando la fotoresistenza fa si che arduino invii il carattere "X".
Di conseguenza, OGNI VOLTA che attacco Arduino al PC devo PER FORZA aprire il suo monitor seriale e poi chiuderlo (PRIMA), e solo DOPO questa operazione il mio programma in C funziona.
Non posso dunque collegare arduino al pc e successivamente far partire il programma C, devo passare per forza per la strada apri monitor seriale, chiudi monitor seriale.
Ed è questo che non capisco...
Alla fine non è un problema così grave, aprire e chiudere il monitor seriale di Arduino è una questione di un secondo..però naturalmente è un problema ed io vorrei capirne le cause
Spero di essermi spiegato bene![]()