سلام خدمت دوستان عزیز
چجوری میشه از متلب یک بردار با سریال بفرستیم واسه آردوینو؟
می خوام دو تا سروو موتور راه اندازی کنم
سلام خدمت دوستان عزیز
چجوری میشه از متلب یک بردار با سریال بفرستیم واسه آردوینو؟
می خوام دو تا سروو موتور راه اندازی کنم
آرایه رو توی یه حلقه for بفرست
فقط همونطور که میدونی تو کامپایلر متلب خونه های ارایه از 0 شروع نمیشه از 1 شروع میشه
چجوری میتونم دیتا بفرستم واسه آردوینو؟ هنوز این کارو نتونستم انجام بدم
چیزی که من خوندم با 4 تا دستور s=serial('COM3'); و fopen(s) و fwrite(?) و fclose(s) در متلب میشه دیتا فرستاد واسه آردوینو حالا چیزی ک مشکل داریم اینکه مقابل دستور fwrite چی بنویسیم و چجوری مقدار بدیم که بتونم همین مقادیر رو توی آردوینو بخونم. ممنونم
با دستور اول سریال رو معرفی می کنی
با دستور دوم پروت کام رو باز می کنی
اما به جای fwrite ترجیحا از fprint استفاده کن .
اینم یه نمونه کد :
کد:clear all clc answer=1; % this is where we'll store the user's answer arduino=serial('COM4','BaudRate',9600); % create serial communication object on port COM4 fopen(arduino); % initiate arduino communication while answer fprintf(arduino,'%s',char(answer)); % send answer variable content to arduino answer=input('Enter led value 1 or 2 (1=ON, 2=OFF, 0=EXIT PROGRAM): '); % ask user to enter value for variable answer end fclose(arduino); % end communication with arduino
خیلی ممنون از راهنمایی هاتون
حالا یه سوال دیگه ک دارم اینکه چجوری میتونم این دیتا ها که میفرستم واسه اردوینو رو تو برنامه آردوینو دخیره کنم؟ اصن میشه؟
همچنین توضیح بدین این مثال دقیقا چکار میکنه؟
مثلا ما می خواهیم یک ماتریس یا عدد از متلب به اردوینو بفرستیم که این اعداد در واقع زوایایی هستند که می خواهیم سروو موتوری که به اردوینو وصله به این زوایا برود به عنوان مثال در متلب یک بردار از زوایایی ک سروو باید در آنها قرار بگیرد داریم یعنی زاویه ابتدا و انتها و تعدادی زاویه بین این مقادیر که باید به اردوینو داده شود.
ویرایش توسط alira725 : 07-19-2016 در ساعت 03:40 PM
در مورد سوال اولتون داده داره روی پورت کام میاد کافیه با دستور Serial.read داده رو بگیرید
برای درک مثال هم کافیه کامنتهای کنار کد رو بخونید دقیقا توضیح داده هر خط کد چیکار می کنه
پورت کام معرفی میشه
باز میشه
یه متغیر به اسم answer تعریف شده که مقدارش برای آردوینو استفاده میشه
هر بار هم تو محیط کامند متلب ازتون میخواد عدد مورد نظرتون رو وارد کنید.
در مورد بردار هم همونطور که توی تاپیک قبلی گفتم
یه حلقه for می نویسید تمام درایه های بردار رو یکی یکی با دستورfprint میفرستید برای آردوینو
یعنی تو همون کد قبلی به جای while از for استفاده کنید و بر حسب اینکه بردارتون چند تا درایه داره for رو پیکر بندی کنید.
این که میگید دارای -1 میگیره یعنی اصلا ارتباط سریال بین این دو بقرار نیست
ی این که یه جای کدنویسی ها باگ داره
کدی که تو آردوینو آپلود کردید چیه؟
و این که تو متلب اصلا می تونه پورت کام رو باز کن
خط های کد سمت متلب رو یه دونه یه دونه تو محیط کامند بنویسید ببیند پو رت رو باز می کنه یا نه