Problemi con monitor seriale ( -Risolto- )

Phoed tranquillo, qui siamo tutti amici :slight_smile:
puoi seguire questi passi?

  1. dicci il SO che usi (win, linux, mac)
  2. apri arduino IDE (il programma su PC) (che versione usi? la 1.0.2?)
  3. collega arduino (quale? UNO, MEGA, etc?)
  4. dall'ide apri l'esempio File->esempi->communication->graph
  5. Assicurati di scregliere la board e la porta seriale corretta dal menù "strumenti"
  6. upload del codice. verifica che sia ok e nella finestrella nera sotto non compaia qualche errore
  7. apri il serial monitor. Assicurati che il baud-rate impostato (c'è un menu a tendina) si lo stesso usato nella Serial.begin() del codice
  8. facci sapere se vedi qualcosa

Grazie tantissimo per il la tua gentile disponibilità Lesto,

ho seguito i passi che mi hai consigliato:

Tramite Windows, con la versione 1.0.2 del software, ho collegato il mio Arduino Leonardo, come debitamente selezionato nel menu "strumenti" ed ho trasferito il programma di esempio File->esempi->communication->graph, come da te consigliatomi, senza che mi venisse segnalato alcun errore; una volta caricato sull'Arduino, ho aperto il monitor seriale con baud-rate conforme al "Serial.begin()" del codice...

... E lo schermo rimaneva e rimane tutt'ora completamente bianco; cosa che, mi sembra, ma potrei anche sbagliare, non dovrebbe succedere neppure se non ci fosse alcun tipo di sensore collegato alla porta analogica... Ho comunque provato con diversi sensori che potessero dare un valore analogico... potenziometro, fotoresistenza, termoresistore... e chi più ne ha più ne metta...
ma il risultato è rimasto invariato in tutti i casi il bianco totale, in più, ricordo che l'icona in alto a destra, riferita al monitor seriale, risulta di color bianco, come fosse evidenziata nel caso in cui il monitor venisse chiamato in causa, ma invece nulla, neppure questo succede.

Non riesco proprio a capacitarmene
e mi affido totalmente alla vostra conoscenza e gentilezza

non serve mettere un sensore, comunque arduino scrive un valore "a caso" se non c'è nulla collegato.

scaricati hyperterminal (http://www.hilgraeve.com/hyperterminal-trial/) e prova a vedere se quel programma riesce ad intercettare qualcosa. I led TX e RX sull'arduino si accendono?

Grazie ancora per il tuo aiuto Lesto,
premetto che non ho mai usato né conoscevo questo programma, quindi fammi sapere se ho sbagliato qualcosa o tutto xD

comunque l'ho installato; ho inserito un nome a caso, in "connect using" ho impostato COM3: la porta sulla quale c'è Arduino,
bit per secondo: 9600; bit di dati: 8; bit di stop: 1.

ho provato a caricare il programma su Arduino ed ovviamente mi ha detto che COM3 era già in uso...
allora prima ho caricato il programma su Arduino, e poi rifatto la procedura con hyper-terminal.

Forse ho sbagliato qualcosa, ma purtroppo niente risultati, anche qui sempre e solo una schermata bianca...

Per quanto riguarda i led TX ed RX si, si accendono in fase di caricamento dello sketch.

Non devi tenere aperte le finestre di hyper e del serialmonitor insieme o uno o l'altro e quando carichi lo sketch la seriale deve essere libera con hyper chiuso, infatti come avrai notato quando scrive lo sketch il serial monitor sparisce.

Ma non potresti prendere arduino e caricare il hyperterminal su un altro pc, devi solo collegare la usb, non serve l'ide

Grazie per la precisazione,
comunque si, si, ho caricato il programma ed usato come monitor seriale soltanto quello di hyper-terminal, intendevi questo?

pablos:
... quando carichi lo sketch la seriale deve essere libera con hyper chiuso, infatti come avrai notato quando scrive lo sketch il serial monitor sparisce.

Infatti mi è successo...

Phoed:
ho provato a caricare il programma su Arduino ed ovviamente mi ha detto che COM3 era già in uso...
allora prima ho caricato il programma su Arduino, e poi rifatto la procedura con hyper-terminal.

Per quanto riguarda questo:

pablos:
Ma non potresti prendere arduino e caricare il hyperterminal su un altro pc, devi solo collegare la usb, non serve l'ide

Non ho capito un granché, scusami, potresti spiegarmi per favore meglio?

quello che intende è che la porta seriale può essere usata da un programma alla volta, quindi se hyperterminal usa le seriale non puoi usare il serialmonitor di arduino e nemmeno caricare nuovi codici.

Un problema classico è che i software per le pennine blue-toot economiche che in realtà sono viste come seriali, e il software prende possesso di tutte le seriali per cercare dispositivi. Ma in tal caso il SerialMonitor non si sarebbe aperto, anzi la porta sarebbe proprio scomparsa dall'elenco.

Quello che volevo dire è:

Prendi il tuo arduino col programma caricato (ovviamente che contenga stringhe Serialprint nel loop), stacchi la usb dal tuo pc e lo colleghi ad un altro pc, ora per vedere la seriale cosa fai ? installi hyperterminal anche sull'altro pc selezionando le opzioni com3, 9600, 8,1, parity NONE, xon/xoff, ecc appena lo avvii farà un reset e dovresti leggere i messaggi, almeno sai se è un problema di arduino o del tuo pc, non devi installare anche arduino 1.0.2 solo hyperterminal

ciao

Wow grazie!! è vero! che bella idea!!!
lo farò appena mi sarà possibile.
nel frattempo
Ho provato a fare questa cosa:
ho provato ad andare in Pannello di controllo -->Sistema --> Gestrione dispositivi --> Porte (COM e LPT) e vi ho trovato "Arduino Leonardo (COM13)", la cosa strana è che quando comunico con Arduino ho sempre impostata la porta COM3, e se provo a cambiare la porta da usare in COM3 mi dice che non è possibile perché "in uso"...

come faccio?
avete consigli?

Ho reinstallato Arduino; ora, nella finestra "Gestione dispositivi" lo identifica come COM4, e la cosa funziona se voglio trasferirgli un programma, ho provato con il classico esempio Basic-blink... E tutto procede secondo i piani...

Ho poi fatto lo stesso con il programma consigliatomi da te lesto, e sembrerebbe lo carichi, se non chè, nel momento in cui clicco sull'icona per aprire il monitor seriale mi dice: Porta seriale COM4 non trovata. Controllare la porta in Strumenti > Porta seriale.

e sotto:

"processing.app.SerialNotFoundException: Porta seriale 'COM4' non trovata. Controllate la porta in Strumenti > Porta seriale.
at processing.app.Serial.(Serial.java:191)
at processing.app.Serial.(Serial.java:92)
at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
at processing.app.Editor.handleSerial(Editor.java:2481)
at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
at java.awt.Component.processMouseEvent(Component.java:6260)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
"

Accidenti

controlla che dopo l'upload non abbia cambiato COM.. non mi stupirebbe visto che è una leonardo

In "Gestione dispositivi" mi rimane indicata come COM4;

seleziono quindi COM4 da strumenti->porta seriale... carico il programma e me lo invia, quindi apro il monitor seriale e "puf" porta COM4 non trovata... Verificare su strumenti-> porta seriale... bla bla bla

Torno a selezionare un'altra porta da Strumenti-> porta seriale... Ed ecco che come per magia COM4 è davvero scomparsa, e posso selezionare solo COM3.

Ma accidenti, mi prende in giro!

formatta windows ]:smiley:

:fearful:
...

:cold_sweat:
...

=( =( =(

Ahahahah, devo arrivare a tanto dici?

bhe prima prova da un altro pc, chiudi tutti i programmi per cellulare/bluetoot/schifezze varie (lascia solo antivirus)

La Leonardo è una scheda un po' particolare, ogni volta che si resetta negozia col PC una differente porta di comunicazione. Siccome la scheda non si resetta aprendo il monitor seriale, se lo sketch stampa subito ti puoi perdere qualcosa per strada.
Resettando la scheda, essa cambia porta per cui il monitor seriale lavora sulla precedente e non riceve più nulla.

Grazie per la risposta Leo72,
ma quindi, a parte di cambiare Arduino, cosa consiglieresti? come potrei superare questo problema secondo te?

RAGAZZI!!! RISOLTOOOO!!!

Per fortuna sono riuscito a capire come fare...
Vi ringrazio tantissimo per il vostro aiuto, ogni intervento è stato illuminante!!!

Ecco cosa ho fatto: Da Pannello di controllo-->Sistema-->gestione dispositivi--> Porte (COM e LPT) --> Arduino Leonardo, ho cambiato la porta seriale predefinita in COM1 (questo pasaggio non era necessario ed andava bene anche la precedente COM4 o qualsiasi altra).

Ho trasferito il programma su Arduino e prima di aprire il monitor seriale ho cambiato la porta seriale, da Strumenti --> Porta seriale, e, a differenza di prima, (quando volevo caricare il programma) in cui mi dava solo la possibilità di "scegliere" COM3; questa volta mi dava anche COM1;

ho impostato COM1 come porta seriale... ho aperto il monitor seriale... Et voilà.... una miriade di dati analogici velocissimi che riempivano quella triste e fino ad allora sola schermata bianca, che ora gioiva insieme a quella sfilza di energici numeri saltellanti!!!

Ahahahah, grazie di nuovo a tutti quanti, grazie davvero per il vostro tempo, per la vostra gentilezza e disponibilità! XD XD XD

Bene, hai risolto.