سلام دوستان
پروژه من کنترل موقعيت و سرعت موتور dc است که با شفت انکودر و به کمک pwm انجام مي گيره.
استادم ازم خواسته علاوه بر اينها در موقع کنترل موقعيت، نموداري به کمک اسکوپ نمايش بدم که زاويه بر حسب زمان باشه.
و همچنين در کنترل سرعت نمودار سرعت بر حسب زمان.
ميخواستم ببينم امکان پذير هست يا نه؟چون خودم راهي به ذهنم نرسيد
سلام
شما حول محاسبه زاویه بر حسب زمان نیاز به توضیح دارید یا رسم نمودار؟
برای محاسبه زاویه بر حسب زمان که تعداد پالس های خروجی انکودر رو میخونید و با محاسبه تعیین می کنید که با هر تعداد پالس ،موتور چند درجه چرخش داشته
بعد با قابلیت تایمر ،زمان هر مقدار چرخش رو محاسبه می کنید
برای رسم نمودار هم که دستورات خودش و داره و هر متغیری رو که خواستید بعنوان x و y تعیین می کنید و منحنی رو می کشید
من باید به نحوی این خروجی رو روی اسیلوسکوپ ببینم و ازش عکس بگیرم. برنامه کنترلی خودم سنگینه و وقتم هم کمه بنابراین نیاز به یک برنامه کوتاه و کم حجم برای نمایش خروجی روی اسکوپ دارم.
در واقع قراره با این کار روند میل کردن به سمت پاسخ نهایی (ورودی مطلوب) رو ببینیم. یعنی من ورودی رو پله 20 درجه میدم و میخوام ببینم خروجی با چه سرعتی و چطوری میره به سمت 20 درجه.
تا جايي كه متوجه شدم يه پياده سازيه كنترلر PID براي موقعيت شفت موتور داريد ، درسته؟
حالا منظورتون از برنامه ي كم حجم براي نمايش روي اسكوپ چي هست؟! اسيلوسكوپ رو مي گيد؟!
يا به ميكرو LCD وصل هست و قصد داريد منحني خروجي رو روي LCD بكشيد؟
احتمال مي دم منظورتون دومي باشه. در اين صورت كافيه در يه پريود ثابت موقعيت شفت موتور رو روي LCD نشون بديد. از لحظه ي شروع تا پايان ، اينطوري فرضا over shoot و ... رو مي تونيد ببينيد. موقعيت شفت موتور رو هم كه احتمالا با تايمر محاسبه مي كنيد.
نه دوست عزیز
منظورم دقیقا اولیه
استادم ازم خواسته تا موقعیت برحسب زمان رو توی اسیلوسکوپ ببینم
خودش میگفت که با D/A میکرو موقعیت رو اتالوگ کن و روی اسکوپ نشون بده از ابتدای حرکت تا انتهاش رو نشون بده
با چه ميكرويي كار مي كنيد؟
اگر واحد DAC دارهه مي تونيد اين كار رو انجام بديد. اگر ندارهه بايد يه DAC خارجي 8 بيتي مثلا بذاريد و اين كار رو انجام بديد. AVR هاي معمولي اين واحد رو ندارن.
نكته ي عجيبي هم كه فكر نمي كنم داشته باشه ، مقدار درجه رو كه محاسبه كرديد ، اگر DAC 8 بيتي هست ، مثل يك عدد 8 بيتي به DAC مي ديد ، DAC هم اين عدد رو به صورت يه ولتاژ بين 0 تا 5 معمولا ( بسته به تغذيه اش ) روي يك خط خروجي ايجاد مي كنه و با وصل كردن پراب اسكوپ به خروجي DAC ، اطلاعات رو روي اسكوپ نشون مي دهه.
نكته اي كه هست بهترهه خروجي DAC رو بافر كنيد. اطلاعات هم گسسته و دندونه دندونه اي هست ، (اگر خيلي ريز بشيد) ، يه ترانزيستور اميتر مشترك مي تونيد ببنديد كه بيسش تحريك بشه و در اي صورت سيگنال خروجي آنالوگ تر نمود مي كنه. اين آخريا رو براي احتياط گفتم ، ممكنه نيازتون نشه.
موضوعي كه هست ، بنظرم سرعت جبرانسازي در حدي بالاست كه چيز خاصي به چشم نمي ياد ، درستش اينه كه اطلاعات ثبت بشن و بعد نمودار بشن ، اما اگر استادتون اينطوري خواسته ، روال كار همينه كه گفتم.
موفق باشيد.
ممنون از پاسختون
یه سوال دیگه هم دارم
من اگر بخوام تابع تبدیل موتور رو بدست بیارم شما چه راهی پیشنهاد می کنید؟
شما می دونید این DAC های خارجی الان تو بازار قیمتش چه حدوداییه؟
ولی مشکل اینجاست که من دیتاشیت موتور رو ندارم که بتونم ثابت ها رو وارد کنم :( این موتوری که دارم دیگه تولید نمیشه و هیچ جا دیتاشیتش نیست!
مهم نيست ، توي هيچ ديتاشيتي اين ويژگي ها كامل گفته نمي شه.
مقاومت و اندوكتانس رو كه مي تونيد محاسبه كنيد ، باقيش هم حدودي وارد كنيد يا از يك موتور مشابه و چند بار چك كنيد تا چيزي بشه كه مي خوايد.
حتي مي تونيد تابع تبديل رو يه فيلتر پايين گذر فرض كنيد ، با درجه 1 كه كارتون راحت تر بشه.
google كنيد باز هم اطلاعات بهتري مي تونيد بگيريد.
موفق باشيد.
سلام
لطفایک پروژه ساده جهت تمرین برای کنترل موقعیت موتور دی سی با اینکودر وارسال عدد موقعییت موتوراز پی سی بوسیله Code vision AVRبرایم ارسال کنید یاراهنمایی کنید .