
براي تبادل لينک ابتدا لينک مارو بانام:E.l.e.B.o.y.s - آموزش ساخت ربات (برنامه نویسی 2) در
وبلاگ ياسايتتان قراردهيد ،
سپس از طریق فرم نظرات به ما خبر دهيد تاما هم اين کار رو براي شما بکنيم.
فروردین 1387
آذر 1386
آبان 1386
آبان 1385
شهریور 1385
مرداد 1385
اردیبهشت 1385
فروردین 1385
اسفند 1384
بهمن 1384
دی 1384
آذر 1384
سلام. امروز (البته الان شبه
) می خوام ادامه کدی رو که
تو پست قبل داشتیم رو تحلیل کنم:
حتی اگر مقدار کمی هم برنامه نویسی (حتی نه به زبان بیسیک) بلد باشید، در
این قسمت هیچ احتیاجی به توضیح نخواهید داشت. اما برای دوستانی که آشنایی کافی
ندارن حتما باید بگم که هر کدی که بین دو کلمه Do
و Loop قرار
میگیره به صورت حلقه از بالا به پایین به صورت مکرر تکرار میشه. البته در استفاده
از این دستور میشه شرایطی تعیین کرد که درصورت لزوم از حلقه بی پایان خارج شد
ولی ما در اینجا به این حلقه بی پایان احتیاج داریم و دلیلش رو هم بعد از توضیح کد
بین اون خواهید فهمید.
راستی یادتونه که در بیسیک هر متنی که بعد از علامت
" ' " قرار میگیره به عنوان توضیحات محصوب میشه. شما میتونید در قسمتهای مختلف
کدتون از توضیحات استفاده کنید تا اگر کدتون طولانی شد یا اون رو به بقیه
دادید در فهمش دچار مشکل نشید.
یادتون هست که پورت b رو به عنوان خروجی معرفی کردیم در این مرحله مقدار خروجی
اون رو مشخص می کنیم. دونستیم که هر پورت دارای ۸ پین هست که میشه با اونها مثل ۸
بیت یا در کل با یک پورت مثل یک بایت رفتار کرد. در اینجا هم پورت بی رو مساوی
متغیر A که اون هم از نوع بایت هست قرار می دیم. چون متغیر A حاوی مقدار B00010001
بود بنابراین پینهای شماره ۱،2،۳،۵،۶ و ۷ پورت، صفر و پینهای
شماره ۰ و ۴ ، یک خواهند شد.
در دوخط بعد نیز اتفاقات بالا عینا
برای متغیر B و پورت سی اتفاق میافتد. اما در خط بعد داریم:
Waitms هم یک دستور یا رویه می باشد که به اندازه مقدار ورودی اش برحسب میلی ثانیه در اجرای برنامه وقفه ایجاد خواهد کرد. مقدار ۱۵ برای تاخیر ۱۵ میلی ثانیه ای در این کد است.
در خطهای بعد هم Loop که نماد پایان حلقه و End که قبلا گفتیم نماد پایان برنامه می باشد را داریم اما ببینیم کدهای داخل حلقه چه عملی را انجام می دهند و علت استفاده از انها چیست؟
طبق جدولهای پست شماره 19 دیدم که چه بیتهایی را باید پشت سر هم به
سیمهای موتور القا کنیم با کمی تامل در کد بالا هم میبینیم که با چرخاندن بیتهای دو
متغیر A و B در واقع مدل یک بیتی راه اندازی موتورهای پله ای را
شبیه سازی کرده ایم. شما می توانید با وصل کردن ۴ پین اول پورت b و c به آیسی
درایور همانند شکل پست شماره 20 باعث چرخش موتور متصل به پورت b در خلاف جهت
ساعت و موتور متصل به پورت c در جهت ساعتگرد شوید.
همچنین با کم کردن مقدار
تاخیر در دستور Waitms می توانید باعث افزایش سرعت چرخش شوید. البته توجه کنید این
تاخیر را تا حدی معینی می توان کم کرد (۳ یا ۴ میلی ثانیه) و کم کردن بیش از حد آن
به دلیل گشتاور مشخص موتور نتنها باعث افزایش سرعت نمی شود بلکه مانع از
استارت موتور و در نتیجه چرخش آن خواهد شد.
نکات خیلی زیادی باقی موند که بخاطر محدودیت های متعدد حداقل تو این پست که موفق به ذکرشون نشدم. اما شما با امتحان کردن این کد و راه اندازی موتورتون مطمئنا این نکات رو به صورت عملی تجربه خواهید کرد.
موفق باشید ![]()
[+]
نوشته شده توسط نیما در 0:40
|
|