PDA

Επιστροφή στο Forum : Σειριακή Επικοινωνία μέσω Matlab



NeKTaRioS - auto
29-08-11, 15:14
Θέλω να επικοινωνησω σειριακά μέσω του Matlab με εναν AVR΄(μεσω της πλακετας STK500)

Τον AVR τον εχω προγραμματισει να επικοινωνει (πχ να πατωντας ενα κουμπι του STK500 να στελνει ενα χαρακτηρα, ή να απανταει την ηχώ) και το χω δοκιμασει μεσω του Hyperterminal.

Το θέμα ειναι οτι θελω να πειραματιστω και με το Matlab και κάτι τετοιο το δοκιμαζω πρωτη φορα.
Απο το Help βρηκα την ακολουθη σειρα εντολων για να ανοιξω επικοινωνια

>> s=serial('COM3', 'BaudRate', 9600);
>> fopen(s)
>> fprintf(s, '*IDN?'); ..ή... fprintf(s,'textFile.txt');
>> idn = fscanf(s);
>> fclose(s);

αλλα προφανως αυτα απο μονα τους δεν ειναι αρκετα

Οποιος γνωριζει ας βοηθησει λιγο...

Το μονο που θελω ειναι να καταφερω απλα να διαβασω ενα χαρακτηρα που θα στελνει ο avr, ισα ισα για να δω πως γινεται η επικοινωνια!


Ευχαριστω!!

spiroscfu
30-08-11, 14:18
Θέλεις υποχρεωτικά με matlab,
το δίλημμά μου όταν ήθελα να κάνω το ίδιο ήταν ανάμεσα από τα matlab-labview-vb και τελικά ασχολήθηκα με visual basic αλλά και το labview πρέπει να είναι απλό (σχετικά) και καλό.
http://zone.ni.com/devzone/cda/tut/p/id/2897



http://www.youtube.com/watch?v=3hvq1uRiLmk

NeKTaRioS - auto
31-08-11, 10:36
Καταρχάς σε ευχαριστω για την ανταπόκριση σου!

Η αληθεια ειναι οτι μετα το Matlab θα δοκιμαζα και το Labview.
Πιο πολυ για εγκυκλοπαιδικη γνωση θελω να το δω σε Matlab.

Θα κατσω και θα μελετησω το λινκ που εδωσες!

ευχαριστω και πάλι!

osek
31-08-11, 11:19
Πριν λίγες εβδομάδες επιχείρησα κάτι παρόμοιο, αλλά με pic, όχι avr. Ήθελα ο pic να μου στέλνει έναν χαρακτήρα, ανάλογα με το τι του έχω στείλει εγώ.

s=serial('COM1');
set(s,'BaudRate', 9600);
fopen(s);
x=14;
fprintf(s,'%c', x); %tou stelno to 14, to diavazei o pic kai apantaei...
y=fscanf(s,'%c',1); %diavazei to matlab mono enan xaraktira
fclose(s);

Έδειξε να δουλεύει μια χαρά.

NeKTaRioS - auto
03-09-11, 15:24
Πριν λίγες εβδομάδες επιχείρησα κάτι παρόμοιο, αλλά με pic, όχι avr. Ήθελα ο pic να μου στέλνει έναν χαρακτήρα, ανάλογα με το τι του έχω στείλει εγώ.

s=serial('COM1');
set(s,'BaudRate', 9600);
fopen(s);
x=14;
fprintf(s,'%c', x); %tou stelno to 14, to diavazei o pic kai apantaei...
y=fscanf(s,'%c',1); %diavazei to matlab mono enan xaraktira
fclose(s);

Έδειξε να δουλεύει μια χαρά.

Καταρχας σε ευχαριστω!

Μια ερώτηση...
Για να δω τελικα τι μου επεστρεψε θα πατησω στο Ματλαβ να μου εμφανισει τι τιμη εχει η y ????

osek
03-09-11, 17:48
Για να δω τελικα τι μου επεστρεψε θα πατησω στο Ματλαβ να μου εμφανισει τι τιμη εχει η y ????

Ακριβώς, στην μεταβλητή 'y' θα αποθηκευτεί ο χαρακτήρας που έχει διαβαστεί.