Ciao a tutti sono Anne, con un team di ragazzi stiamo lavorando ad un progetto di laboratorio su Arduino. Non sono molto pratica ma pian piano sto imparando
Ho un problema, vorrei inviare tramite MATLAB dei dati ad arduino MEGA tramite le porte seriali Tx1 ed Rx1 legate a Serial1.
Premetto che dalla porta nomale ci riesco, solo che non posso visualizzarli in tempo reale sul "monitor" perchè mentre invio i dati la porta è occupata.
come faccio a inviare dati sulle Serial1? Come faccio a dire a Matlab quale COM è legata a Serial1?
ci provai pure io tempo addietro ma nulla... è più facile che tu ci riesca con scilab, io non ci sono riuscito nemmeno con quello, però scilab ha dei moduli predisposti per la comunicazione seriale
Io sono riuscita ad inviare pacchetti di dati ad arduino. ho poi elaborato un codice che quando gli arriva il pacchetto lui deve accendere eventuali LED. Tutto fila per il verso giusto. il Problema è che se si vuole che arduino mandi poi eventuali messaggi sul "Monitor" mentre sta ricevendo i dati, dice che la COM relativa è occupata (dall'invio dei dati in corso).
Ecco che io ho pensato di inviare i dati sulle porte Rx1-2-3 in tal modo la porta del monitor non è utilizzata ed arduino può li inviare eventuali messaggi.
il Problema è che non so in Matlab quale COM devo assegnare alla variabile seriale per far inviare i dati ad arduino.
Ciao a Tutti, ho risolto il problema (in parte), ho installato i driver del convertitore USB-RS232 ed ho trovato la COM associata. Da Matlab poi con il comando:
s = serial('COM41');
creo un oggetto sulla porta seriale COM41
e con il comando
fwrite(s, 255,'uint8');
dovrebbe scrivere su 8 bit il valore decimale 255. ed il problema è proprio qui.
Vi spiego:
Se al posto di utilizzare una porta seriale esterna, uso come porta seriale quella di alimentazione di Arduino il valore 255 inviato da Matlab viene visto da arduino come un byte 11111111, mentre se lo stesso valore viene inviato con una seriale (ad esempio collegata su Tx1 ed Rx1 quindi Serial1.read) non è 255 ma qualche altra cosa...
dici che vuoi inviare e ricevere dati contemporaneamente? se non hai problemi di pin e seriale potresti usare una softwareserial e con una invii dati e con l'altra ricevi
Potrebbe essere che non cambi i livelli logici. Come hai efettuato il collegametnto tra pc e arduino? La porta seriale del pc è interna o tramite adattatore usb? Tra porta seriale (o adatttore) e arduino usi un max232 o qualcosa di equivalente?