ايران ويج

نسخه‌ی کامل: servo
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام به همه دوستان
می خواستم در مورد دستور servo و اینکه چطوری کار می کنه توضیحاتی بدین
متاسفانه بد جوری کارم لنگه
به help بیسکام هم نگاه کردم ولی چیزی حالیم نشد لطفا کمکم کنید :)
8O
سلام به همه دوستان
واقعا عجیبه که سایتی با این همه بازدید کننده هیچ جوابی در این مدت برای یه مشکل نده قبلا ها اینجوری نبود وقتی سوالی پرسیده می شد فورا جوابی براش داده می شد ولی دیگه ......
در هر حال از همه دوستان و اساتیدی که می تونن به من کمک کنن خواهش می کنم که جوابی برام بزارن
مرسی :roll:
ابتدا پایه ای که به سروو موتور وصل می شود رو به عنوان خروجی معرفی کن
کد:
Config Portb = Output
حالا نیاز به یک تعریف داری
کد:
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Servos = تعداد موتور
Servo1 = پایه از میکرو که به سروو متصل می شود
Reload = تاخیر پالس
مقدار وسطش رو خودت باید بدست بیاری
یا در دیتاشیت اون نوشته

بعد هم اینها
کد:
Enable Interrupts
کد:
Do
کد:
Servo(1) = 10
با این جمله گفتی هر 100 میکرو ثانیه پالس بفرسته
این مقدار قابل تغییر که این تغییرات میتونه جهت محور اصلی رو انتخاب کنه
مانند پایین
کد:
Waitms 3000
کد:
Servo(1) = 60
حالا گفتی هر 600 میکرو ثانیه پالس بفرسته
کد:
Waitms 3000
کد:
Loop
حتما میتونی انجام بدی اما اگر مشکلی پیش آمد
:roll: بگو تا نمونه ای با Proteus قرار بدم.
نقل قول: واقعا عجیبه که سایتی با این همه بازدید کننده هیچ جوابی در این مدت برای یه مشکل نده قبلا ها اینجوری نبود
شرمنده من نبودم (یه مدتیم چالوس بودم جاتون خالی :wink: ) البته با سروو هم کار نکردم که بتونم کمک کنم تو همین سایت قبلا یه چیزایی بحث شده به گردی پیدا می کنی
پردازش گر جان بابت جواب هایی هم که میدی ممنون
:roll: مرسی همین الان می رم تا امتحان کنم :wink:
من در این سایت کلی جواب گرفتم ، و وقتی به نتیجه می رسیدم بسیار خوشحال می شدم به همین خاطر دوست دارم که من هم کمی اندکی بیشتر از کمتر سهمی در یاری رساندن به دوستانم داشته باشم. :roll:
من ، از شما ممنونم که چنین سایتی راه اندازی کردید.
(راستی امیدوارم که بهتون خوش گذشته باشه) :P
دوست عزیزم مرسی :wink:
همون چیزی شد که می خواستم :P
فقط چند تا سوال اگه می شه به این لینک نگاه کنید
http://www.robotstore.com/download/Servo...ming_1.pdf
کد هایی رو لطف کرده بودید درست بود ولی اینکه موقعی که ما دستور =(servo(1
می نویسیم آیا پهنای موج رو تغییر میدیم و سوال دوم اینکه reload در کجای موج اثر می زاره ؟
ممنون می شم اگه یکم بیشتر توضیح بدین :?: :oops:
سلام
باید بگم نیدونم :roll:
با آزمایش هایی که انجام دادم متوجه شدم Reload هم روی زمان تکرار پالس اثر داره و هم بر روی خود پالس و این درست نیست . تنها باید بر روی زمان تکرار پالس اثر داشته باشه.
بیسکام دیگه. :wink:
به هر حال وقتی Reload=10 باشد هر 40ms پالس ایجاد میشه.
پیشنهاد میکنم خودتون با استفاده از تایمر ها و آگاهی از سروویی که دارید برنامه نویسی کنید. میتونی از PWM خود میکرو استفاده کنی اینجوری وقفه ای در برنامت ایجاد نمی شه.
:idea:
اینم توضیحاتی در مورد سرووها اگر شکل کار کردنشون رو بدونید با هر برنامه ای می توانید هدایتش کنید.
(گفتگوی ما فقط در رابطه با PWM Servo Motor است)
سروو ها چند خواص اصلی دارند.
1- Minimum Angle (کمترین زاویه) درجه
2- Maximum Angle (بیشترین زاویه) درجه
3- Rotional Speed (سرعت چرخش محور اصلی)
4- Minimum Control Pulse (طول پالسی که جهت محور را به کمترین زاویه میرساند)
5- Maximum Control Pulse (طول پالسی که جهت محور را به بیشترین زاویه زاویه میرساند)
:?:
سوال: این سوال نحوه کاربرد موتور را نشان می دهد.
علی ؟ سال دارد. او سروو موتوری با مشخصات:
Minimum Angle: -90
Maximum Angle: +90
Rotional Speed: 10
Minimum Control Pulse: 1ms
Maximum Control Pulse: 2ms
در اختیار دارد. علی میخواهد محور موتور را بترتیب به زاویه هایی که در پایین ذکر شده ببرد شما بفرمایید برای هر زاویه چند پالس مثبت با چه طولی احتیاج است؟ (وضعیت اصلی موتور 0 درجه است)
الف)45- ب)90- ج)90+ پ)0
:idea:
جواب:
گفته شود تعداد پالس و وضعیت فعلی موتور ربطی ندارد و واسه گول زدن است.
الف) 1.250 میلی ثانیه
ب) 1 میلی ثانیه
ج) 2 میلی ثانیه
پ) 1.5 میلی ثانیه

فرمول ساده ای داره - می تونی به راحتی فرمولی بنویسی و با دادن زاویه مقدار تاخیر لازم رو بدست آوری.
اگر مشکلی بود بگو.
مرسی خیلی برام جالب و مفید بود :P :wink:
صفحه‌ها: 1 2