دوستان من می خوام به میکرو فیدبک منفی بدم (با انکودر ) برنامشو چطور باید بنویسم (تو codevision )
ویه سوال دیگه اگه یه ولوم قبل میکرو وصل کنیم با کم وزیاد کردن ولوم موج pwm تغییر می کنه ؟
ممنون می شم
[quote='t3r!p3000' pid='115239' dateline='1265239289']
مهندس اینو ببین :
http://forum.iranled.com/attachment.php?aid=1695
همونیه که دنبالشی !
ممنون از فایلتون خیلی کارم را جلو انداخت
اما اگه ما بخوایم به جای کلیدها pwm+ و pwm- یک پتانسیومتر بذاریم می تونیم موج pwm را به صورت خطی تغییر بدیم؟
با کم و زیاد شدن ولتاژ مقدار pwm کم و زیاد می شه یا باید داخل برنامه تغییراتی بدیم؟
مهندس خوب خروجی پتانسیومتر رو بده به ووردی آنالوگ و مقدار PWM رو بسته به ورودی که می خونی تنظیم کن !
پتانسیومتر را به ورودی وصل کردم ویل تو نرم افزا پروتیوس که شبیه سازی می کنم با کم و زیاد کردن ، سرعت تغییر نمی کنه (موتور با حداکثر دورش کار میکنه) و وقتی که پتانسیومتر را می بندیم سرعت موتور صفر می شه.
پتانسیومتر را به کدوم پایه باید وصل کنیم؟
سلام.
شما باید این قسمت برنامه رو خودتون با adc بنویسین.
به اين صورت كه مقدار ولتاژ رو از ورودی adc بخونین و یه pwm متناسب با اون توی خروجی بذارین
مهندس فایل پروتئوس رو بفرست !
یه موتور داره که عملکرد شون تو این حالت درست نیست !
برنامتو هم بفرست !! ( ترجیحا بسکام باشه )
من متاسفانه برنامه با codevision هست ولی یه برنامه ساده است و نه پتانسیومتر راتوش قرار دادم و نه فیدبک انکودر را (ولی هر دوتاش هم باید باشه)
دوستان ممنونم
تو این مداری که گذاشتی پتانسومتری به adc وصل نیست!
ولی به هرحال منم با پروتیوس این مشکل رو داشتم. موتور که میذاشتم خود به خود از سرعت کم شروع می کرد می رفت تا حداکثر سرعت .... تند میشد!
قبلا بچه ها می گفتن پروتیوس مشکل داره...
در عمل که مشکلی نیست. همون پتانسیومتر رو به adc وصل کنی جواب میده
مشکل اصلی اینه که نتونستم فیدبک انکود را برنامشو بنویسم (در حقیقت بچه ها میگن پالس انکودر را باید به یه counter بدیم و اون بشموره خوب این سرعت ÷السها را کجا باید ازش استفاده کنم؟)
من رشتم مکانیک زیاد... شرمنده گفتین pot را به کدوم پایه وصل کنم؟
قبل پایه AVCCدیگه
مهندس فکر کنم می خوای یه PID پیاده کنی !!!؟
خوب سرعتو با انکودر بگیر ( فرضا تعداد پالس ها رو تو 100 میلی ثانیه اندازه بگیر ) و ببین اگه از سرعت مورد نظرت بیشتهر خوب PWM رو کم کن و اگه کمتره PWM رو زیاد کنی !!
اگه مقدار سرعت فعلی موتور با سرعت مورد نظر خیلی فاصله داره خوب تفاوتشون رو بگیره و همونقدر مقدار PWM تغییر پیدا کنه !
----------------------
واسه کنترل با تانسیومتر هم می تونی رو 10 بیتی بذاری pwm و دقیقا مقداری که از پتانسیومتر می خونی رو برابر مقدار pwm قراربدی !
حالا اگه pwm 8 بیتی انتخاب کنی باید مقدار ورودی آنالوگ خوانده شده رو تقسیم بر 4 کنی !!
واسه 9 بیتی تقسیم بر 2 !!
و پروتئوس دو تا موتور داره !
یه موتور که شبیه موتور واقعیه بحساب و زا وقتی ولتاژ بدی بهش یه مدتی طول می ده تا به حداکثر سرعتش برسه و همینطور از وقتی برقشو قطع کنی به مدتی طول می کشه تا توقف کنه !
خوب شما اینو انتخاب نکنین و ( و یا زمانهاشو صفر کنین ) یا یه موتور دیگه داره که عملکردش واقهیع تره و اونو انتخاب کنین !
توجه شود اگه فرکانس خروجی PWM زیاد باشه پروتئوس توان زیادی از CPU می کشه که حواستون باشه زمان بندیهاش بهم نخوره !!! ( این قضیه تو سیستم من خیلی مشهوده )