سلام
دوستان چطوری میشه خروجی یه مدار کنترل موتور را ذخیره کرد و دوباره اجرا کرد
مثلا برنامه بدی 10 دقیقه موتور با این سرعت و این جهت حرکت کنه و بعد 20 دقیقه با یه سرعت دیگه در یه جهت دیگه و بعد برنامه را اجرا کرد
سلام
دوستان چطوری میشه خروجی یه مدار کنترل موتور را ذخیره کرد و دوباره اجرا کرد
مثلا برنامه بدی 10 دقیقه موتور با این سرعت و این جهت حرکت کنه و بعد 20 دقیقه با یه سرعت دیگه در یه جهت دیگه و بعد برنامه را اجرا کرد
راه که زیاده
ولی یه راه اسون تا از کار با حافظه فرار کنی اول ببین درست میگم تا راهنماییت کنم
ببین اگه دستوراتت ثابته مثلا میخوای در ده دقیقه اول مثلا موتور با دور ثابت 1000 دور در جهت راست و در 20 دقیقه دوم با دور ثابت 5000 دور در جهت چپ بچرخه و این تکرار بشه درست میگم!
خوب کجای این ذخیره میخاست!!!مثلا برنامه بدی 10 دقیقه موتور با این سرعت و این جهت حرکت کنه و بعد 20 دقیقه با یه سرعت دیگه در یه جهت دیگه
با تایمر میتونی درست کنی، 10 دقیقه موتور یه جور بچرخه بعد بیست دقیقه یه جور دیگه بچرخه.
شاید اشتب کردم
لطفا بیشتر توضیح بده؟
*** اللّهم عجّل لولیک الفرج ***
اره البته نه به این رندی که دقیقه بدم ثانیه هم باید باشه و مثلا بشه گفت 30 دقیقه کل حرکت موتور هست
تنظیم بشه 5 دقیقه مثلا با سرعت 50 درصد pwm (سرعت نصف)حرکت کنه و بعد 15 دقیقه با سرعت 30% و 10 دقیقه با سرعت 80%
البته تو دستگاه ثانیه هم احتیاج میشه میخوام جوری باشه که از چند ثانیه تا حدود 48 ساعت بشه این برنامه را به مدار داد
خودم به فکرم رسید از حافظه استفاده کنم ولی چون 3 تا موتور هستن یکم دردسرش به نظرم زیاده
تقریبا یه همچین چیزیه ولی کار صنعتی و یجورایی دستگاهه همیشه میخواد استفاده بشه یه چیز مطمن احتیاج دارم
البته با تایمرم فکر کنم بشه ولی خب سرعت موتور چی؟؟چطور بگیم مقدار pwm در زمان بعدی تغییر کنه و یا جهت موتور
من از تایمر فقط بصورت چپ گرد و راست گرد استفاده کردم نه کنترل سرعت
اگه راهنمایی کنید ممنون میشم
خوب دوست عزیز شما یه تایمر برات میمونه همون تایمر دو در مد تولید 1 ثانیه راهش بنداز و برنامه شبیه به ساعت رو بنویس میدونی که منظورم چیه
خوب حالا شما چند تا متغییر داری مثلا sec -min -hour و... حالابیا از اینا توی خود حلقه ات استفاده کن و شرط if قرار بده مثلا
و به همین ترتیبکد:if(min<15) { ... . .. . }
سوالی بود در خدمتیم
همون طور که دوستان هم اشاره کردن با تایمر میکرو کارتون راه میافته (اصلا شک نکنید) هر زمانی رو که دلتون بخواد می تونید با دقت میلی ثانیه درست کنید و زمان هایی مثل یک ساعت یک روز یک ماه .... رو باش بسازید .(اصلا کار تایمر اینه دیگه حافظه نمی خواد که)
اینم که باز وظیفه میکرو به همراه یه راه انداز موتور .ولی خب سرعت موتور چی؟؟چطور بگیم مقدار pwm در زمان بعدی تغییر کنه و یا جهت موتور
من از تایمر فقط بصورت چپ گرد و راست گرد استفاده کردم نه کنترل سرعت
اگه راهنمایی کنید ممنون میشم
به اینصورت که راه انداز رو به موتورتون متصل می کنید و pwm میکرو رو هم پیکربندی می کنید که در هر لحظه ای که بخواین می تونید دور موتور رو دقیق کنترل کنید از بابت تغییر جهت چرخش هم راه انداز های موتور ورودی فرمانی رو میگیرن که با تغییر پلاریته فرمانی که از میکرو صادر میشه می توان جهت چرخش رو عوض کرد .
شما جزئیات موتورتون رو بگین تا من بگم که از کدوم راه انداز استفاده کنید و نحوه برنامه نویسیش به چه صورتی هست .
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
ممنون از راهنماییتون
من 2 تا بحث دیگه تو انجمن داشتم با دوستان راجب موتور و adc ,pwm
موتورها از نوع متور گیریبکس 3 امپر هستند و با پتانسیومتر 3 تا از خروجی های تایمر میکرو را استفاده میکنم برای کنترل دور موتور
و برای کنترل چپ گرد و راست گرد هم از جوی استیک انالوگ استفاده میکنم و تریستور و یا ترایاک ..(البته راهه دیگه ای به ذهنم نرسید که با جوی استیک انالوگ کنترل بشه جهت چرخش و سرعتشون با پتانسیومتر ...این جوری که مدار طراحی شده با همین 3 تا pwm کنترل میشن 3 تا موتور)
من از چندتا از استادامون پرسیدم گفتن چون کار تولید هست و قراره یه وسیله ای را بدید تو بازار یه ایسی حافظه با قدرت نوشتن و خواندن بالا بگیر و دستورات را رو حافظه تنظیم کنید
ولی من با ای سی های حافظه کار نکردم
یکم توضیح در مورد دستگاه میدم شاید بهتر بتونید راهنماییم کنید:
دستگاه 3 تا موتور گریبکس داره طراحی دستگاه شبیه یه بازوی رباتیک هست یعنی 3 محور چرخش داره و هر محور یک موتور
ما میخوایم مداری داشته باشیم که نمایشگر داشته باشه و در حالت عادی سرعت هر سه موتور را به صورت زیر روی LCD 16*2 نشون بده:
speed 1: 50 speed 2:40
speed 3:70
و با تغییر جهت جوی استیک جهت موتور تغییر پیدا کنه با سرعت مورد نظر
این کار برد دستی مدار و عادی مدار هست
حالا میخوایم یه زمان مشخص بتونیم مشخص کنیم با جهت و سرعت برای هر موتور مشخص بشه و بعد برنامه را اجرا کنیم و اتوماتیک این دستورات اجرا بشن
بله ، قدیما از eeprom های نظیر سری 27 برای دستتگاه ها استفاده میکردن . الان دیگه میکروکنترلر همه این کارا رو انجام میده . اگه بگید سیکل خوندن و نوشتن قدیمیا بیشتر بود اینم درست نیست .روز به روز تکنولوژی در حال پیشرفته . همین eeprom میکرو از 100000 تا 10000000 سیکل خوندن و نوشتنشه..من از چندتا از استادامون پرسیدم گفتن چون کار تولید هست و قراره یه وسیله ای را بدید تو بازار یه ایسی حافظه با قدرت نوشتن و خواندن بالا بگیر و دستورات را رو حافظه تنظیم کنید
سلام مهندس
اگه ميخواي از حافظه استفاده كني پيشنهاد ميكنم از AT45DB161D استفاده كني.
لطفا اين لينك رو نگاه كن:
http://sadmonew.blogfa.com/post-7.aspx
موفق باشيد.
_____________________________________
_____________________________________
ممنون
فکر کنم یادم رفت بگم
این برنامه که به موتورها داده میشه میخوایم جوری باشه که هربار بشه یه برنامه زمانی به موتورها داده بشه توسط سخت افزار و نه هربار با نرم افزار یه برنامه از پیش تعیین شده بدم به میکرو
بنا به استفاده هرشخص از دستگاه یه برنامه میده و بعد با یک کلید برنامه را فعال میکنه و اجرا میشه و برنامه پاک میشه بعد از اجرا و حالا اگه خواست یه برنامه جدید به موتورها داده میشه
در کل یه برنامه میخوام زمان و جهت و سرعت هر موتور را بتونم وارد کنم و بعد برنامه داده شده اجرا بشه
و اینم مهمه در بیشتر حالت 2 یا 3 موتور همزمان کار میکنند
در کل فکر نکنم خطوط برنامه تون به حدی بشه که نیاز به حافظه جداگانه داشته باشید چون از حافظه بیشتر در جاهایی بیشتر استفاده میشه که خطوط برنامه خیلی زیاد باشه و فقط یه جورایی ازش بخونیم حالا اگه بخواهیم
اینطور که شما میگویید نیاز به نوشتن و پاک کردن مدوام برنامه در زمانهای خاص دارید هم تعداد خطوط بالا میره هم سخت افزار زیاد میشه و مشکلات به طبع بیشتر میشه!
در کل من توجیه نشدم برای استفاده از حافظه مجزا در پروژه تون بیشتر از این توضیح دهید
والا اینو فقط از شما میشنوم که برای راه اندازی موتورگیربکس باید حافظه گذاشتمن از چندتا از استادامون پرسیدم گفتن چون کار تولید هست و قراره یه وسیله ای را بدید تو بازار یه ایسی حافظه با قدرت نوشتن و خواندن بالا بگیر و دستورات را رو حافظه تنظیم کنید
دوست عزیز دقیقا حرف دل منو زدی و منم ۱۰۰٪ با نظر شما موافقم
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
دوست عزیز من مشکلی با راه اندازی موتور گریبکس هام ندارم..مدار درایور اونا شد یه mega16
و 3 تا l6203 و یکم کلید و مقاومت و دیود...اصلا اون ربطی به کار الان من نداره
من گفتم من یه برنامه میخوام که تنظیم گر باشه..بحث اون درایور کلا جداست و ربطی به این چیزی که الان من میخوام نداره
من الان میگم یه مدار قابل برنامه ریزی ..سرعت و جهت هر موتور و زمان روشن شدنش رو LCD به ترتیب تعریف بشه
مثل این مثلا یه کلید برای منو بزارم به تریتیب اول موتور یک
motor 1:left/right speed:0-100
time:00:00:00
بعد با زدن کلید بره صفحه بعدی موتور دوم و دوباره:
motor 2:left/right speed:0-100
time:00:00:00
بعد موتور 3:
motor 3:left/right speed:0-100و بعد با یه کلید start برنامه هر 3 موتور اجرا بشه
time:00:00:00
3 تا PWM میخوایم با کنترل پتانسیومتر برای سرعت هاشون
و برای چپ گرد و راست گرد موتور هم هر موتور 2 تا خروجی 0-1
یه همچین مداری هست بطور ساده
البته من سیمای درایور را وصل نکردم کشیدم که متوجه بشید
بجای اون تریستور ها از ترایاک یا اپتوکوپلر هم میشه استفاده کنم
خروجی PWM تایمر 1 را به هردو تریستور وصل میکنم و در حالت عادی خروجی های
PORTC.0 va PORTC.1 مقدارشون یک هست و سیگنال به هردوورودی درایور موتور داده می شود و موتور در حالت ترمز هست
وقتی خواستیم جهت موتور چپ یا راست باشه یکی از خروجی ها صفر میشه و فقط سیگنال به یکی از ورودی های درایور وصل میشه و موتور میچرخه و PWM هم با یه پتانسیومتر کنترل میشه مقدارش
دیگه نمیدونم چطوری توضیح بدم ببخشید
شما با این توضیحات باید یه صفحه کلید4*4 هم به مدارتون اضافه کنید و نیازی به حافظه جدا هم نداری
ساختن تب هم که کاری نداره
موفق باشی
یا من منظور شما رو متوجه نشدم یا شما زیادی سخت میگیرین .دوست عزیز من مشکلی با راه اندازی موتور گریبکس هام ندارم..مدار درایور اونا شد یه mega16
و 3 تا l6203 و یکم کلید و مقاومت و دیود...اصلا اون ربطی به کار الان من نداره
من گفتم من یه برنامه میخوام که تنظیم گر باشه..بحث اون درایور کلا جداست و ربطی به این چیزی که الان من میخوام نداره
من الان میگم یه مدار قابل برنامه ریزی ..سرعت و جهت هر موتور و زمان روشن شدنش رو LCD به ترتیب تعریف بشه
مثل این مثلا یه کلید برای منو بزارم به تریتیب اول موتور یک
با این توضیحات شما من اصلا نیازی به استفاده از هر نوع حافظه خارجی رو نمی بینم
یه الگوریتم درست و حسابی باید آماده کنید بعدش شروع کنید برنامش رو بنوسین و تو حافظه فلش میکرو ذخیره کنید و خلاص .
بله ایشون میتونن خیلی ادوات به مدارشون اضافه کنن تا مدارشون رو کاربرپسندتر و راحت تر بتونن پیاده کنن .شما با این توضیحات باید یه صفحه کلید4*4 هم به مدارتون اضافه کنید
ویرایش توسط Division : 14-04-2012 در ساعت 01:15
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
مرسی از راهنماییت خیلی کمک کردی اقا مسعود
بازم به شما هم استانی که هوای مارو داری
میگم فقط یه سوال من تا حالا با صفحه کلید زیاد کار نکردم و در حد ازمایش و بستن مدار نمنونه بوده...
من با کلید قبلا چندبار منو بندی و تنظیم تایمر بصورت ساعت و دقیقه و ثانیه انجام دادم و... انجام دادم
ولی الان گیج شدم بخدا این چند روز از بس برنامه نوشتم قاطی کردم
الان برنامه هارو بصورت تکی تکی دارم ولی یکیو میخواد یکی کنه این برنامه هارو
این 2 روز که قراره فروم بسته بشه ولی بعدا باز احتمالا به مشکل میخورم مزاحم میشم
دوستان اگه تو برنامش کمکم کنید هم ممنون میشم چون درسا و امتحانای میان ترم وقت برام نزاشته
اقا من معذرت این بحث حافظه یه بحث اولیه بود که تموم شد و حافظه خارجی درکار نیست
شرکتی که این پروژه را به من داده اینجوری خواسته ولی خب امان از وقتی که ادم از 4 تا استاد بی سواد تو دانشگاه کمک بخواد ...
منم حافظه ای استفاده نمیکنم و اگه بشه با کیبرد این مدار را تنظیم میکنم چون کاربر پسندتر هست
الگوریتم که داره ولی امان از وقتی ادم دانشجو باشه ندونه کار مردمو راه بندازه یا درساش را پاس کنه الگوریتم زندگیش میریزه بهم چه برسه به الگوریتم برنامه
نیما جان همون طور که دوست عزیزمون Division گفت اول شما باید یه الگوریتم برای خودت داشته باشی وگرنه به مشکل بر میخوری و برنامه نویسی برات سخت میشه!
کار با صفحه کلید هم خیلی اسونه کافیه عبارت کتابخانه صفحه کلید 4*4 را توی نت سرچ کنی همه چی دستت میاد شما شروع کن به نوشتن برنامه مشکلی بود من و دوستان تا جایی که بتونیم کمک میکنیم.