با سلام خدمت همه دوستان
ميخوام با استفاده از دو ولوم زاويه جرخش و سرعت سرو رو كنترل كنم
"راستش من در كار با تايمر ها مبتديه مبتدي هستم "
تو كد ويزارد كد ويزن بايد مقادير تايمر 1 رو جند قرار بدم و بعد داخل برنامه مقدار رجيستر ها جند باشه؟
از دوستان ممنون ميشم راهماييم كنند و اكر امكانش هست ي كد نمونه برام قرار بدن
سلام
مهندس شما پرتال سایت جستجو بزنی از دوستان یه پروژه مشابه واسه کنترل موتور dc با ولوم کار کردن که می تونه کمکتون کنه و با کمی تغییر اساسی جواب میگیرید.
خوش باشید.
سلام
دوستان من با میخوام سروو موتور 180 درجه رو با کنترل کنم ولی انگار اصلا موتور جواب نمیده !اینم برنامه هست البته تغذیه موتور با میکرو جداست ولی زمین ها به هم وصله
کد:
while(1){
for(OCR1A=1000;OCR1A<2000;OCR1A++){
delay_ms(3);
};
for(OCR1A=2000;OCR1A>1000;OCR1A--){
delay_ms(3);
};
};
یکی دو بار جواب داد ولی دیگه جواب نمیده شکل موج رو اسکوپ درسته ولی نمیدونم چرا موتور جواب نمیده؟ خواهشا یکی کمک کنه دیگه کلافه شدم- این دومین موتور و از نوع دیگه است
(۱۷-خرداد-۱۳۹۲, ۰۰:۰۸:۱۵)voyager2020 نوشته است: [ -> ]سلام
دوستان من با میخوام سروو موتور 180 درجه رو با کنترل کنم ولی انگار اصلا موتور جواب نمیده !اینم برنامه هست البته تغذیه موتور با میکرو جداست ولی زمین ها به هم وصله
کد:
while(1){
for(OCR1A=1000;OCR1A<2000;OCR1A++){
delay_ms(3);
};
for(OCR1A=2000;OCR1A>1000;OCR1A--){
delay_ms(3);
};
};
یکی دو بار جواب داد ولی دیگه جواب نمیده شکل موج رو اسکوپ درسته ولی نمیدونم چرا موتور جواب نمیده؟ خواهشا یکی کمک کنه دیگه کلافه شدم- این دومین موتور و از نوع دیگه است
اول از همه شما باید دوره تایمر رو مشخص کنید چقدر هست؟
هر 20 میلی ثانیه هست؟
اگه بله تایمر رو طوری تنظیم کنید که 1.5 میلی ثانیه پورت رو یک نگه داره
هیچ برنامه دیگه ای مثل ای لوپ رو هم براش ننویسید
ببینید سرو وسط وای میسه یا نه
اگه وایساد کمی تلاش کنید جهتش رو عوض کنید باید مقاومت کنه(خیلی زور نزنید)
-
اگه موتور وسط واینساد باید مقداری با مقدار تایمر ور برید تا بیاد وسط
-
اگه کلا حرکت نکرد باید کمی با دوره بازی کنید
-
اینقدر باید ور برید تا راه بیوفته
از این برنامه هایی که هی مقدار تایمر رو عوض می کنن رو برای گرفتن جواب از سرو استفاده نکنید!
میکرو مگا 32 هست و کریستال 16 مگ- ضریب تقسیم 8 و مود تصحیح فاز و فرکانس تایمر 1 با مقدار تاپ icr که مقدار icr میشه 20000 برای 50 هرتز! حالا مقدار ocr1a بین 1000 تا 2000 میشه 1 تا 2 میلی ثانیه؟! درسته دیگه؟! مشکل اینجاست که موتور بعضی مواقع درست کار میکنه ولی در مواقعی هم نه!! رو اسکوپ شکل موج درسته ولی یکی دوبار دیدم که یه دقعه فرکانس نصف شد و شد 25 کیلو هزتز(واقعا برام عجیبه چرا اینطوری میشه؟!) مثلا دیشب هیچ جوره موتور کار نمیکرد الان کار میکنه! این دومین و نوع دیگه موتور هست! این کار هایی که میگین رو انجام دادم موتور وسط وامیسته!
از هیچ برنامه ای استفاده نکردم تو کدویژن نوشتم و پروگرم میکنم همین-
منظورتون رو از این متوجه نشدم : "هیچ برنامه دیگه ای مثل ای لوپ رو هم براش ننویسید"
خوب من تو برنامه نهایی احتیاج دارم میکرو تو حلقه مقدار adc رو بخونه و بر اساس اون یه سری محاسبه کنه و مقدار ocr1a رو ست کنه!
ممنون میشم پاسخ بدید
----
یک مسئله خیلی مهم:
مقدار تاخیر بعد از دادن مقدار به ocr باید چقدر باشه؟ میدونید منظورم چیه-چون مقدار دهی به ocr در برنامه نهایی من داخل حلقه هی تکرار میشه ولی قبل از هر مقدار دهی داخل حلقه باید دو تا تابع و یه سری محاسبه انجام بشن که حدود 30 40 میلی ثانیه زمان میبره!(به خاطر محدودیت سنسور و ...)و بعد از اینها به تایمر مقدار داده میشه و دوباره از اول-
سلام
دوستان ما بالاخره مشکل رو فهمیدیم- سروو صحیح کار میکنه ولی بعضی مواقع نویز میندازه رو میکرو یا یه همچین چیزی! باعث میشه میکرو هنگ کنه یا ریست بشه یا از اون حلقه ای که باید مدام ADC رو بخونه و به ocr مقدار بده بیاد بیرون! حالا خواهشا بالاغیرتا یکی بگه چطوری میتونیم نذاریم سروو رو میکرو اثر بذاره! یعنی باعث میشه مقدار تاپ تایمر عوض بشه- بقیه چیزا کار میکنه ولی تایمر رو که مولد PWM هست خراب میکنه
(۱۸-خرداد-۱۳۹۲, ۱۳:۴۵:۱۰)voyager2020 نوشته است: [ -> ]یکی بگه چطوری میتونیم نذاریم سروو رو میکرو اثر بذاره! یعنی باعث میشه مقدار تاپ تایمر عوض بشه- بقیه چیزا کار میکنه ولی تایمر رو که مولد PWM هست خراب میکنه
موارد جلوگیری از نویز رو رعایت کردین؟
مثل گذاشتن خازن و فاصله انداختن بین موتور و میکرو و ...
داخل مدارتون رله که ندارین؟
به به سلام اقا رسول- تغذیه سروو (هابی سروو ) و میکرو جدا هست و فقط زمین ها تو یه نقطه به هم وصل هستند فرکانس PWM هم از پایه OC1A خارج میشه و به موتور میره- دیگه مورد دیگه ای مدنظرتونه؟!
نه رله ندارم- ولی خازن بین موتور و میکرو نذاشتم منظورتون چه خازنی با چه مقداری هست؟ فقط یه مقاومت 10 اهم گذاشتم-
(۱۸-خرداد-۱۳۹۲, ۱۴:۰۰:۰۲)voyager2020 نوشته است: [ -> ]به به سلام اقا رسول- تغذیه سروو (هابی سروو ) و میکرو جدا هست و فقط زمین ها تو یه نقطه به هم وصل هستند فرکانس PWM هم از پایه OC1A خارج میشه و به موتور میره- دیگه مورد دیگه ای مدنظرتونه؟!
نه رله ندارم- ولی خازن بین موتور و میکرو نذاشتم منظورتون چه خازنی با چه مقداری هست؟ فقط یه مقاومت 10 اهم گذاشتم-
چرا مقاومت دیگه
اگه سرو RC باشه درست کار نمی کنه
تو یه شماتیک تو نت دیدم -البته میدونم علت مشکل این نیست- راهی به نظرتون نمیرسه؟ اون خازنی که اقا رسول میگن چقدر باید باشه اینکه ایا سروو رو مستقیم بدم به میکرو؟
(۱۸-خرداد-۱۳۹۲, ۱۴:۰۷:۲۸)voyager2020 نوشته است: [ -> ]تو یه شماتیک تو نت دیدم -البته میدونم علت مشکل این نیست- راهی به نظرتون نمیرسه؟ اون خازنی که اقا رسول میگن چقدر باید باشه اینکه ایا سروو رو مستقیم بدم به میکرو؟
مستقیم رو که بده
خازن هم بسته به خودت بین تغذیه ها بزار