void loop()
{
if (Serial.available()>0)
{
inbyte=Serial.read();
analogWrite(10,inByte);
}
Serial.println(inByte);
}
Ora finchè uso processing, o minicom è tutto ok.. accendo e spengo il led e mi torna indietro il valore corrente di inByte.
Se uso matlab al primo dato inviato la scheda smette di inviare dati via seriale.
Qualcuno sa darmi una risposta?
(non sono interessato ad usare lo sketch di Matlab per arduino).
Su matlab c'è il seguente codice:
Seriale = serial('/dev/ttyUSB0');
set(Seriale,'BaudRate', 9600);
fopen(Seriale);
una volta aperta la comunicazione da command window lancio:
fscanf(Seriale);
ricevo il valore di inbyte ed i led sulla board lampeggiano.
appena invio
fwrite(Seriale,10);
il led cambia stato, ma in ricezione non leggo più nulla. La scheda continua a ricevere segnali in ingresso, ma non invia nulla.
Cósí mandi l' ultimo dato ricevuto in una ricezione multipla (piú byte uno dopo l' altro) e la ripeti finche arriva un nuovo dato sulla seriale. È voluto?
Il LED lo hai messo sul pin 9 o sul pin 10 o su entrambi?
Ciao Uwe
ho incollato solo una parte del programma... ed ho sbagliato.. comunque è tutto sulla porta 9 comandata in pwm.
Il flusso continuo di dati in uscita dall'arduino è voluto.
Mettiamola così, facciamo che Serial.println(inByte) debba inviarmi dei dati rilevati da un trasduttore.
L'elaborazione dei dati prelevati dal trasduttore deve poi controllarmi l'accensione di un led.
Ora il codice postato non fa questo ovviamente, però rende l'idea delle prove fatte, e sopratutto dello scopo!
il problema è un'altro. La seriale si blocca nel momento in cui invio un dato.. non riesco a ricevere più dati da arduino.. riesco solo ad inviarglieli!
il problema è un'altro. La seriale si blocca nel momento in cui invio un dato.. non riesco a ricevere più dati da arduino.. riesco solo ad inviarglieli!