Porta seriale VisualBasic Arduino

ho un problema nel capire il funzionamento della porta seriale tra visual basic e arduino. un po di tempo fa ho ga aperto u npost simile per il quale pero trovai soluzione. Ora invece i mio problema è diverso.

1) ho un valore in visual basic e lo devo mandare ad arduino ho capito che arduino legge un carattere per volta e quindi bisogna creare una routine in arduino fino a che riesca a leggere la stringa completa,. questo è quanto ho letto ma non so mettere in pratica.

E' inutile che scriva per ora tutti i miei dubbi e le mie difficolta .........perche significherebbe creare confusione. Quello che cerco è un aiuto per iniziare a studiare una soluzione.

grazie

In questo articolo analizzo la ricezione di dati inviati dal computer. Forse può esserti d'aiuto.

quando da pc invio qualcosa sulla porta seriale arduino lo riesce a ricevere con l'uso di un ciclo che gli permetta di leggere un carattere per volta., Ma quelllo che ho inviato sulla porta seriale rimane memorizzato fino a he arduino finisce il cilo oppure devo rispedirlo di nuovo dal pc ad arduino? :astonished: :astonished: :astonished:

nikola291: quando da pc invio qualcosa sulla porta seriale arduino lo riesce a ricevere con l'uso di un ciclo che gli permetta di leggere un carattere per volta., Ma quelllo che ho inviato sulla porta seriale rimane memorizzato fino a he arduino finisce il cilo oppure devo rispedirlo di nuovo dal pc ad arduino? :astonished: :astonished: :astonished:

Non ci ho capito nulla. :fearful: Quando spedisci i dati (anche più di un carattere alla volta) in Arduino devi leggere con Serial.read(). Questo comando legge un carattere e lo elimina dal buffer di Arduino. Il carattere letto con la Serial.read() devi tu memorizzarlo da qualche parte.

Al link di @Leo c'e' un ottimo esempio di Protocollo, ovvero regole per la spedizione tra PC/Arduino.

Se devi spedire solo un valore numerico, puoi usare in Arduino la Serial.parseInt() (o parseFloat() se con virgola) http://arduino.cc/en/Reference/ParseInt

Comoda può anche essere la Serial.readBytesUntil(), legge tutto in un colpo fino al carattere terminatore. Da VB puoi spedire il valore e alla fine un carattere particolare, esempio @.

char buffer[30];
Serial.readBytesUntil('@', buffer, sizeof(buffer));

nid69ita: Non ci ho capito nulla. :fearful:

Siamo in due.

per ora ho difficolta: non riesco a far funzionare contemporaneamente il monitor seriale di Arduino e il programma visuale BASIC che ho scritto perché la porta seriale risulta già in uso da Arduino o da visualbasic in base a chi dei due avvio per prima.......

Vero. In questi casi io uso Virtual Serial Port Emulator (free) che permette di condividere una seriale tra più programmi sullo stesso computer. http://www.eterlogic.com/Products.VSPE.html