امتیاز موضوع:
  • 3 رأی - میانگین امتیازات: 2.67
  • 1
  • 2
  • 3
  • 4
  • 5
موتور dc در بسکام
نویسنده پیام
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #23
RE: موتور dc در بسکام
خروجی این مدار در نقطه A فقط ولتاژ منفیه و مثبتی نداره برای همین اومدم با یه مقاومت 4/7 کیلو پول آپ کردم که بشه به اینتراپت یا هر پایه ای از میکرو وصل کرد
اون 7407 یه بافر که داخلش 6عدد گیت داره ولی شما یکی شو استفاده میکنید

این کل مدار انکودر شماست که باید یه میکرو وصل بشه
اگه تو باقی مدارات مشکلی دارین بگین

من امشب براتون سرچ میکنم و یه برنامه هم میزارم که جلو هر خط کار برنامه رو به فارسی مینویسم راحت باشین
۱۴-تير-۱۳۹۱, ۲۱:۴۵:۳۷
ارسال‌ها
پاسخ
تشکر شده توسط : samira926
samira926 آفلاین
تازه وارد

ارسال‌ها: 19
موضوع‌ها: 2
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 20
( 11 تشکر در 6 ارسال )
ارسال: #24
RE: موتور dc در بسکام
نه دیگه . واقعا شرمنده کردید .

پروژه همین بود . اولا چپگرد و راستگرد موتور . دوما نمایش دور موتور روی ال سی دی .

بازم ممنون که برام وقت میذارید و سوالات سطح پایینم رو با صبر و حوصله جواب میدید .

از اینکه باهام مدارا میکنید واقعا ممنونم .
(آخرین ویرایش در این ارسال: ۱۴-تير-۱۳۹۱, ۲۲:۱۰:۴۵، توسط samira926.)
۱۴-تير-۱۳۹۱, ۲۲:۰۲:۲۸
ارسال‌ها
پاسخ
تشکر شده توسط : abbasalifix
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #25
RE: موتور dc در بسکام
مدارا...؟ داریم کمکت میکنیم !

پس متوجه شدیم که شما باید از اینها استفاده کنید
تایمر 0 و کریستال خارجی 32.768 کیلو هرتز
pwm برای تغییر دور موتور
ال سی دی کاراکتری برای نمایش اجزای برنامه
واحتمالا یه ای سی درایور که بتونه یه موتور dc رو درایو کنه که همونl298 خودتونه
انکودر ها و مداراتش کا راجع لهش بحث شد نمیدونم تا الان ساختینش یا نه اما اینن قسمت رو بالا برین پایین بیاین باید درست کنید تا بشه باهاش دور رو تشخیص داد

اینم یه مدار تو پروتوس
اساتید چک کنید ببینید چیا کم داره و کجاهاش مشکل داره
(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۰۱:۱۰:۲۳، توسط abbasalifix.)
۱۵-تير-۱۳۹۱, ۰۰:۲۹:۵۰
ارسال‌ها
پاسخ
تشکر شده توسط : samira926
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #26
RE: موتور dc در بسکام
اطلاعاتی که از سایت ها در آوردم خیلی میتونه کمک کنه مثل اینها

بهترین روش برای اندازه گیری فرکانس های پائین اینه که از تایمر 2 بعنوان RTC استفاده کنی! یعنی زمان یک ثانیه دقیق باهاش ایجاد کنی و در مدت این یک ثانیه توسط تایمر صفر یا یک ، تعداد پالس های ورودی رو بشمری!

یه روش دیگه هم این هست که زمان تناوب پالس رو اندازه بگیری
وقتی که پایه ورودی پالس یک میشه ، تایمر شروع به شمرده کنه ، وقتی که پایه دوباره یک شد تایمر متوقف بشه .
از تقسیم کردن عدد 1(بستگی به انکودر داره ) به زمان شمرده شده توسط تایمر تعداد دور بدست میاد .
----------------
راستی نگفتین انکودرتون توی هر دور چند بار 0و یک میشه؟

پس وقتی میشه با تایمر اینجوری شمرد باید بیایم و یه زمان دقیق یک ثانیه درست کنیم اونوقت هم زمان بشه صفر و یک های پایه میکرو رو شمرد
(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۰۲:۲۹:۰۹، توسط abbasalifix.)
۱۵-تير-۱۳۹۱, ۰۲:۲۴:۲۳
ارسال‌ها
پاسخ
تشکر شده توسط : samira926, sharin
samira926 آفلاین
تازه وارد

ارسال‌ها: 19
موضوع‌ها: 2
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 20
( 11 تشکر در 6 ارسال )
ارسال: #27
RE: موتور dc در بسکام
ممنون که زحمت کشیدید . سوالات زیر برام پیش آمده:

روی مدار فرستنده گیرنده ، نوشته اید to micro یعنی به میکرو وصل شه . اما کدوم پروت ؟ فرقی نداره؟ هر پورتی وصل کردم فقط کافیه توی برنامه نویسی اونو output معرفی کنم . درسته؟

کریستالی که روی پایه های c6 و c7 هستش برای ایجاد پالس خارجیه؟اگر آره که هیچی . اگر نه برای قسمت کانتر احتیاج بهش داریم ؟

سوالی که پرسیدید جوابش رو نمیدونم . یه اینکودر چند بار صفر و یک میشه!

راستش رو بخواین تونستم برنامه چپ گرد و راستگرد رو خودم بنویسیم . اما هنوز قسمت تایمر و کانتر و شمارش دور رو درک نکردم . یه کم گنگه.
(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۱۱:۰۶:۱۵، توسط samira926.)
۱۵-تير-۱۳۹۱, ۱۰:۵۹:۰۴
ارسال‌ها
پاسخ
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #28
RE: موتور dc در بسکام
[تصویر:  Encoder.jpg]
این یه نمونه از انکودر های دو رنگ یه نمونه سوراحدار هم که اون بالا گذاشتم

بهتره که همین دو رنگه باشه

نقل قول: هر پورتی وصل کردم فقط کافیه توی برنامه نویسی اونو output معرفی کنم . درسته؟
نه دیگه !شما میخواین با میکرو وارد کنید پس باید input تعریف بشه

برای اینه که بتونیم یه ثانیه رو دقیق بدست بیاریم با اون کریستال اصلی میکرو فرق داره
----------------
برای برنامه چپ گرد راست گرد هم من میگم یه جوری باشه که بشه با کلید تغییرش داد
و همین طور pwm رو بشه کم و زیاد کرد

برای دور موتور هم اینجوریه که وقتی شما یه تعداد دور بهش معرفی کردین موتور اگه زیر بار هم بره باید با زیاد کردنpwm سعی کنه به همون دور قبلی خودش برسه
(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۱۱:۵۰:۳۷، توسط abbasalifix.)
۱۵-تير-۱۳۹۱, ۱۱:۴۲:۲۴
ارسال‌ها
پاسخ
تشکر شده توسط : samira926
samira926 آفلاین
تازه وارد

ارسال‌ها: 19
موضوع‌ها: 2
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 20
( 11 تشکر در 6 ارسال )
ارسال: #29
RE: موتور dc در بسکام
الان مدارم این شکلیه:
http://www.up.98ia.com/images/abt9ky2b6g7d2wp478d3.zip

اما میخوام کانتر رو هم اضافه کنم که میشه این:
http://www.up.98ia.com/images/lawg64ktbtk3bj2nj4s.zip


نمیدونم اشکالش کجاست . لطفا یه نگاه بندازید .
۱۵-تير-۱۳۹۱, ۱۲:۱۲:۱۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #30
RE: موتور dc در بسکام
برنامه ي اولي كه ظاهرا درسته .
برنامه ي دومي هم دوبارهه 2 تا END دارهه !!

در مورد ايده ي درست كردن زمان 1 ثانيه با استفاده از كريستال خارجي و تايمر2 بايد بگم ايده ي جالبيه ...
امابنظرم فعلا اگر به صورت نرم افزاري زمان 1 ثانيه رو با كد زني درست كني بهتر باشه ( از نظر يادگيريش ! )
نقل قول: Config Timer0 = Counter , Edge = Rising
Config Int0 = Falling
Config Int1 = Falling
بنظرم بهتره از تايمر 1 براي شمارش استفاده كنيد ، چون بدون اينكه بخواهيد وقفه اش رو راه بندازيد قادر هست تا 65536 تا بشمارهه ... ( براي تعداد دورهايي كه موتور در 1 ثانيه مي زنه مناسبه چون مطمئنن بيش از اين مقدار رو نياز نداريد )

نقل قول: Enable Interrupts
Enable Int0
Enable Int1
خط Enable Interrupt رو بهترهه بعد از تمام كانفيگ هايي كه مربوط به فعال سازي وقفه هاي بخش هاي مختلف هست بذاريد.

نقل قول: Dim B As Byte
On Int0 Left_1
On Int1 Right_1
On Timer0 M
از تايمر 1 براي شمارش استفاده كنيد و وقفه هم فعلا نيازي نيست ، از تايمر 0 ( همراه با وقفه اش ) مي تونيد براي ساختن زمان 1 ثانيه استفاده كنيد.
نقل قول: Do
Locate 2 , 2
Lcd Counter0
Waitms 200
Loop
End
قبل از دستورات LCD معمولا اكثر اوقات از Cls استفاده مي كنيم تا صفحه پاك بشه و از نو نوشته بشه. اينطوري بدون پاك شدن صفحه مقادير روي هم ديگه نوشته مي شه و بخشي كه مقدار رو نشون مي دهه بعد از يه مدتي مقادير عجيب نشون مي دهه كه طبيعي هم هست.

از همينجا كه END برنامه خورد ، حالا از اينجا به بعد بايد Label هاي وقفه و يا سابروتين ها و يا تابع ها رو بنويسيد.
در مورد شما ( label وقفه ها رو بايستي بنويسيد. )

نقل قول: M:
Incr B
Locate 2 , 3
Lcd " tedade dor motor "
Lcd B
Return
بنظرتون اين Label رو درست نوشتيد ؟! ( چون براي شمارش بوده ، طبق توضيحات بالا كه دادم نيازي نيست براي شمارش وقفه بذاريد. ) مي دونيد چه اتفاقي بايد بيفته تا روال وقفه اتفاق بيفته ؟!
ريجستر شمارنده اش ( براي تايمر0 كه يه ريجستر 8 بيتيه ) بايد 256 بار شمارش كنه كه به سبب سرريزي كه در آخرين شمارش بودهه وقفه رخ بده و بعد از اون دوباره از 0 شروع مي كنه به شمارش.
در واقع اينجا شما به ازاء هر 256 تا شمارش ، 1 واحد به شمارش تعداد دورها اضافه مي كنيد !!!!

نكته ي ديگه اينكه LCD كاراكتري 2*16 كه احتمالا شما هم از همون استفاده مي كنيد در هر سطر قادر به نمايش 16 كاراكتر هست ، بشماريد شما چند كاراكتر گذاشتيد ...
از Cls و Locate هم حتما در جاي مناسب استفاده كنيد تا اطلاعات درست نشون داده بشه ...
براي خلاصه تر شدن بجاي عبارت tedade dor motor مي تونيد بنويسيدRPS =

نقل قول: Do


Loop
End
اين DO_Loop و END اينجا چيكار مي كنه ؟!!!
اين عبارت ها رو پاك كنيد. شما قبلا END برنامه رو گذاشتيد. اينها اينجا هيچ معنيي نمي دن ...

نقل قول: Left_1:
Portd.0 = 1
Portd.1 = 0
Locate 1 , 1
Lcd " rast gard "

Return


Right_1:
Portd.0 = 0
Portd.1 = 1
Locate 1 , 1
Lcd " chap gard "
Return
اين ها هم كه احتمالا درست هستن.
فقط بجاي chap gard و rast gard بهتره از ساعتگرد و پاد ساعتگرد استفاده كنيد كه به ترتيب مي شه CW و CCW

برنامه رو اصلاح كنيد و تصميم بگيريد زمان 1 ثانيه رو مي خواهيد با كريستال و تايمر2 بسازيد يا با تايمر2/تايمر0 و وقفه ، به صورت كد ؟؟
مشكلي بود بگيد.

موفق باشيد.

(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۱۳:۱۰:۴۱، توسط sharin.)
۱۵-تير-۱۳۹۱, ۱۳:۰۶:۳۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : samira926, abbasalifix
samira926 آفلاین
تازه وارد

ارسال‌ها: 19
موضوع‌ها: 2
تاریخ عضویت: خرداد ۱۳۹۱

تشکرها : 20
( 11 تشکر در 6 ارسال )
ارسال: #31
RE: موتور dc در بسکام
ممنون .

میدونین چرا دو تا end داشت آخه سعی کردم هر قسمت رو جدا بنویسم و play کنم که اگه مشکل داره بفهمم . اون وقت همه رو یه جا بردم که یهو یادم رفت end دوم رو پاک کنم .

تایمر 1 کذاشتم .
enable interrupts رو که آخر نوشتم چرا میگید غلزه؟ درست کار میکنه که؟

کارایی که گفتید رو انجام دادم الان موتور روشن نمیشه اما rpm رو نمایش میده ولی خیلی کند میشمره . چرا؟ چون موتور نمیچرخه اینجوریه یا کلا کند میشمره؟

http://www.up.98ia.com/images/d350et3meyf3ahtpwvck.zip
(آخرین ویرایش در این ارسال: ۱۵-تير-۱۳۹۱, ۱۳:۳۵:۳۲، توسط samira926.)
۱۵-تير-۱۳۹۱, ۱۳:۳۱:۳۴
ارسال‌ها
پاسخ
abbasalifix غایب
کاربر با تجربه
****

ارسال‌ها: 1,394
موضوع‌ها: 82
تاریخ عضویت: دى ۱۳۸۸

تشکرها : 1496
( 2198 تشکر در 1065 ارسال )
ارسال: #32
RE: موتور dc در بسکام
مشکل داره هم تو برنامه هم تو مدارتون شما باید تو محیط شبیه سازی به جای اون سیم که از انکودر ها به میکرو وصل شده یه مولد موج مربعی بزارین و بهش فرکانس بدین
۱۵-تير-۱۳۹۱, ۱۴:۱۷:۵۹
ارسال‌ها
پاسخ
تشکر شده توسط : sharin
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #33
RE: موتور dc در بسکام
گفته هاي abbasalifix
+
مورد هايي رو كه گفتم كه كامل انجام نداديد ... !
مثلا شما با پايه هاي D0 و D1 بايستي CW يا CCW بودن چرخش رو به واسطه ي درايور مشخص كنيد. خوب ؟!
اصلا اين 2 پايه رو خروجي تعريف نكرديد !!
براي تايمر 1 گفتم نيازي به وقفه نيست. ( يعني label با نام M رو نيازي نداريد ! )
در حلقه ي DO_Loop داريد مقدار Counter0 رو نشون مي ديد !! ( از اون كه ديگه استفاده نمي كنيد !! )
همون محتويات M رو در DO_Loop بذاريد.
وقتي Timer1 رو براي شمارش انتخاب مي كنيد ، يعني سر و كارتون با پايه ي PB.1 هست. در سخت افزار اين مورد رو دقت كنيد.
در نرم افزار هم حتما اين پايه بايد ورودي تعريف بشه ...
Timer1 رو به عنوان شمارنده استفاده مي كنيد درسته ؟ پس Prescale گذاشتن براش چه معنيي مي دهه ؟!
در LAbel به نام M اون B رو چرا +1 مي كنيد ؟
چرا مقدار B رو روي LCD نمايش مي ديد ؟
بايد مقدار Timer1 رو نشون بديد ! ( البته گفتم M رو كلا بر داريد ... و در DO_Loop قبلي ازش استفاده كنيد. )

۱۵-تير-۱۳۹۱, ۱۵:۰۸:۲۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : abbasalifix


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کمک جهت انتخاب موتور مناسب Mohsen_ n 3 1,201 ۰۹-تير-۱۳۹۹, ۱۰:۴۴:۳۹
آخرین ارسال: Mohsen_ n
Sad [فوری] راه اندازی استپر موتور ماشین hmdv 5 1,737 ۲۹-تير-۱۳۹۸, ۰۱:۳۰:۵۴
آخرین ارسال: 1نفر
  [سوال] درایور کردن موتور 180ولت DC با جریان 10 آمپر salehjg 1 3,236 ۰۳-آبان-۱۳۹۵, ۰۶:۳۴:۲۶
آخرین ارسال: alimogmov
  انتخاب موتور برای نوار نقاله آزمایشگاهی hamidreza001371 0 2,168 ۰۷-شهریور-۱۳۹۵, ۲۲:۲۵:۲۶
آخرین ارسال: hamidreza001371
  موتور براشلس در پروتئوس gray 5 4,361 ۲۳-مرداد-۱۳۹۵, ۱۲:۵۵:۰۰
آخرین ارسال: gray
Rolleyes کار نکردن موتور براشلس gray 11 8,129 ۱۷-مرداد-۱۳۹۵, ۰۸:۴۷:۰۲
آخرین ارسال: alimogmov
  [سوال] حداکثر کلاک استپر موتور؟ sorena01 1 2,499 ۰۵-مرداد-۱۳۹۵, ۰۲:۰۴:۲۲
آخرین ارسال: salehjg
Question [فوری] انتخاب میکرو برای کنترل موتور براشلس gray 7 5,648 ۲۷-تير-۱۳۹۵, ۲۳:۵۷:۱۰
آخرین ارسال: gray
Rolleyes [فوری] موتور ساده و ارزان برای گهواره کودک rostamiani 1 3,377 ۲۶-خرداد-۱۳۹۵, ۱۷:۲۸:۲۴
آخرین ارسال: rostamiani
  سوال در باره سرعت ماکسیمم استپ موتور hata6417 0 2,276 ۰۹-خرداد-۱۳۹۵, ۱۷:۵۱:۰۹
آخرین ارسال: hata6417

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 5 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS