-
جمعه 19 آذر 1389, 17:48 عصر
#6
VIP
نقل قول: ارتباط با سنسور
برنامه کامل دم دستم نیست و متاسفانه فرصت ندارم براتون تهیه کنم (البته اگه خودتون جستجو کنید پبدا میکنید) . اگه اینجا رو دیدید ، توضیحان زیر بیشتر کمکتون میکنه.
برای مثالی که زدید (با کلیک روی یه دکمه در طرف pc یه led روشن خاموش بشه) عملکرد کلی به این صورت میشه :
میکرو کنترلر (همیشه) منتظره تا کامپیوتر بهش یه فرمانی بده . ساده ترین راهی که میشه میکرو رو دائم منتظر دریافت فرمان (از کامپیوتر) گذاشت ، استفاده از یه حلقه بینهات هست که توش اطلاعات سریال رو بخونه .البته کامپایلر ها تابع آماده برای این کار دارن ، مثلا waitkey تو بسکام باعث میشه برنامه تو همون خط بمونه(حلقه بینهایت) و هر وقت یه بایت از پورت سریال دریافت کنه اونو برمیگردونه و از حلقه بینهایت در میاد (میره ادامه برنامه). همه اینا با یه کلمه ی waitkey انجام میشه. پس یعنی در کل میکرو باید طوری برنامه ریزی بشه که دائما (مثلا هر 1 میلی ثانیه یا هرچیز دیگه) اطلاعات رو از پورت سریال بخونه و ببینه چیز جدیدی اومده یا نه.
در کامپیوتر هم یه یرنامه درست میکنید(فرم و دکمه و کامپوننت و ..) که با کلیک روی دکمه ، یک بایت اطلاعات (یه کاراکتر دلخواه) رو از طریق کامپوننتی که برای ارتباط سریال هست، بفرسته به میکروکنترلر . خود ویژوال استودیو کامپوننت mscomm رو برای این کار داره . فقط اول باید تنظیماتش رو انجام بدید تا قابل استفاده بشه(باوود ریت و پریتی و ...) . تنظیمات زیاد مهم نیست چی باشه ولی مهم اینه که پورت سریال میکروکنترلر هم همین تنظیمان رو داشته باشه. شما 9600 رو برای باوود ریت ، دیتا بیت رو 8 ، استپ بیت رو 1 ،پریتی رو none و flow control رو هم none در نظر بگیر. پس خلاصه هروقت دکمه فشرده بشه یک کد خاص به میکرو کنترلر فرستاده میشه.
بقیش هم واضح هست که برنامه میکرو کنترلر باید طوری باشه که با توجه به بایت(کاراکتر) دریافتی ؛ کاری که شما میخواید رو انجام بده.
برای جزییات انجام این کار ها باید مثالهای هر کدوم از این بخشها(میکرو و pc ) رو ببینید که اتفاقا تو وب به فراوانی پیدا میشه !
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت