نظرسنجي
نظر شما در مورد سايت چيست؟

عالي
خوب
متوسط
بد

تقويم
<    «  فروردين 1403  »    >
شیدسچپج
 123
45678910
11121314151617
18192021222324
25262728293031
مطلب تصادفی
پست تصادفي:
» پروگرامر USB جيبي AVR!
» معرفی یک PC صنعتی (RB-110) فوق العاده برای ربات ...
» ترانزیستور های سه بعدی شركت اینتل و تولید انبوه !! ...
» ذخیره 900 ترابایت اطلاعات روی یک گرم باکتری ...
» چگونه از AVR در محیط صنعتی بهره ببریم؟
» آشنایی کامل با DSP
» كامل ترين پروژه آموزش ارتباط سريال با كامپيوتر ...
» نسخه كامل OrCad 16.5 با لينك مستقيم از مركز مكاترونيك ...
» رباتي كه شكلات درست مي كند!
» آشنایی با ماشین های هیبرید
رتبه در الكسا

مطلب اختصاصي مركز مكاترونيك ايران
توسط :محمدرضا ناظم

 

همواره يكي از مهمترين بخش هاي يك آسانسور و يا يك روبات رولر (چرخ دار) كنترل حركت و ميزان آن به صورت دقيق است. از قطعات بسيار مفيدي كه امروزه براي اين هدف استفاده مي شود، مي توان به انكودرها اشاره نمود. كه در حال حاضر به شكل هاي خاصي يافت مي شوند. هدف از اين آموزش آشنايي با انكودرهاي مكانيكي و يا نوري نيست، بلكه هدف بالاتري را در نظر داريم تا شما را با انكودرهاي جدا و انكودرهايي كه به صورت مجتمع با موتورها نصب شده اند را بررسي نماييم. در حقيقت اين انكودرها از نوع انكودرهاي مستقل و وابسته هستند كه هر دو از لحاظ عملكرد به يك شكل كار مي كنند.

روش عملكرد انكودر ها به اين صورت هست كه به ازاي مثلا يك دور كامل 3600 پالس توليد كنند. در نتيجه با شمارش پالس ها مي توان ميزان چرخش و در نتيجه ميزان جابه جايي را محاسبه نمود.

فرض كنيد يك چرخ با قطر 10 سانتي متر را به يك انكودر بسته ايم. در اينجا به ازاي هر دور چرخ 3600 پالس توليد مي شود كه در حقيقت اين 3600 پالس بيانگر محيط طي شده دايره چرخ مي باشد. كه با يك نسبت ساده در برنامه نوشته شده براي انكودر، قابل محاسبه خواهد بود. بديهي است هرچه تعداد پالس ها بيشتر شوند، دقت محاسبه حركت هم بيشتر مي شود ولي بايد اين نكته را هم در نظر گرفت كه آي سي متصل شده به انكودر نيز قادر به شمردن اين پالس ها با توجه به كريستال به كار برده شده در شمارنده، باشد.

از جمله انكودرهاي مستقل كه در حال حاظر در بازار به انكودر آسانسورها نيز معروفند، انكودرهاي Autonics  مي باشند كه با پالس هاي گوناگون و دقيق از جلمه 1024، 2048، 3600 (از 10 پالس تا 10000 پالس) در بازار مي باشند. اين انكودر ها در گروه بندي به انكودرهاي INCREMENTAL  نيز معروف هستند كه در ادامه به بحث  توضيح آنها خواهيم پرداخت.

 

 

 

عملكرد اصلي يك انكودر بر اساس توليد پالس هاست و هدف اصلي ما در اين آموزش ارائه ي روشي مطمئن براي شمارش اين پالس ها توسط AVR مي باشد.

و اما يك انكودر در عمل چگونه كار مي كند.

بسياري از انكودر هاي بازار داراي چند سيم مختلف هستند كه به طور كلي به صورت زير مي باشد:

1- سيم ولتاژ (VCC) انكودر

2- سيم زمين (GND)انكودر

3- سيم A براي پالس اول

4- سيم B براي پالس دوم با اختلاف فاز 90 درجه نسبت به پالس A

5- سيم Z  كه به ازاي هر دور كامل انكودر (از لحظه حركت آن ، تا يك دور كامل) يك پالس توليد مي كند.

6- سيم شيلد دار براي حذف نويز

 

تعداد پالس هاي توليدي A يا B براي شناسايي تعداد پالس ايجاد شده براي هر دور انكودر كافي است. ولي نكته اصلي اينجاست كه علاوه بر هر تعداد پالس، ما نيازمند به اطلاعات جهت چرخش نيز هستيم و اينجاست كه پالس B به كمك ما مي آيد. اين پالس به دليل اختلاف فازي كه دارد در چرخش هاي CW (ساعتگرد) انكودر جلوتر و در چرخش هاي CCW  (پادساعتگرد) انكودر عقب تر قرار مي گيرد. اين اختلاف به راحتي در شكل زير قابل مشاهده است (براي بزرگتر ديدن تصوير بر روي آن كليك كنيد):

 

آموزش راه اندازي انكودر صنعتي (Autonics) با بهترين روش
و اما روش شمارش پالس ها با AVR :
از مهمترين مواردي كه در شروع كار بايد در نظر گرفت، روش خواندن اين پالسها با خطاي نزديك به صفر درصد است . پس انتخاب بهترين روش، براي خواندني با اين دقت، نيازمند راهكارهايي است كه در ادامه ذكر خواهند شد.
گام هايي كه در اينجا براي شمارش پالس ها نياز است:
1- ساخت مدار ساده فليپ فلاپ از نوع D براي شناسايي پالس پيشتاز  (در حقيقت براي شناسايي CCW يا CW انكودر)
2- فعال سازي Interupt خارجي ميكرو براي شمارش تعداد پالس هاي توليدي و ارتباط اين پالس با ميكرو به بهترين شكل
3- ايجاد سطح ولتاژ مناسب آي سي براي حذف كاهش خطا با توجه به ولتاژ انكودر (5 ولت يا 12 ولت)
هدف بزرگ ديگري كه اين مقاله دنبال مي كند، ارائه روشي است كه از انكودرهاي 12 ولتي هم مانند انكودرهاي 5 ولتي بتوان استفاده نمود، ولي مشكل اصلي استفاده از انكودرهاي 12 ولتي، ايجاد پالس تا سطح 10 ولت است كه اين حد از مقدار قابل قبول AVR بيشتر بوده و منجر به آسيب رسيدن به اين آي سي مي شود. لذا در اينجا روشي را ارائه خواهيم نمود تا از اين آسيب نيز جلوگيري كامل به عمل آيد.
براي حل اين مشكل تقسيم مقاومتي مناسب، ولتاژ 10 ولت را به سطح 5 ولت مي آورد و قابل اعمال براي عملكرد صحيح فليپ فلاپ مي شود.
و اما شروع كار:
در مرحله اول مي خواهيم با آي سي 4013 يك فليپ فلاپ از نوع D (تاخيري) را براي اتصال به انكودر آماده سازي كنيم. (PDF اين آي سي در فايل پيوست قابل دانلود است.)
نتيجه خروجي اين فليپ فلاپ يك سطح منطقي صفر و يك است كه به يكي از پورت هاي آي سي وصل مي شود و براي شناسايي CCW  يا CW چرخيدن انكودر به راحتي استفاده مي شود. نكته مهم ديگر در مدار عملي اين فليپ فلاپ، استفاده از مقاومت هاي نويز گير هست كه حتما شما نيز در مدار عملي بايد از آنها بهره ببريد.
در زير شماتيك اين مدار را مي توانيد مشاهده كنيد (براي بزرگتر شدن تصوير، روي آن كليك كنيد...):
آموزش راه اندازي انكودر صنعتي (Autonics) با بهترين روش
همچنين از اين لينك مي توانيد فايل شبيه سازي و روش  استفاده از آي سي 4013 در پروتئوس 7.7 را دانلود كنيد. (احتمالا با ورژن هاي پايين تر مشكل خواهيد داشت.)
دانلود كنيد:
دانلود این فایل فقط برای اعضای سایت می باشد. اگر شما هم می خواهید دانلود کنید، باید در سایت عضو شوید.
و اما روش برنامه نويسي:
تا كنون با روش شناسايي جهت چرخش انكودر آشنا شديد. همانطور كه مي دانيد ، آي سي هاي AVR داراي Interrupt خارجي براي عمليات روي پالس هستند كه مي توانند در مدهاي زير عمل كنند.
توضيح اين حالت ها در حقيقت شرح بخش هاي مختلف وقفه خارجي در Wizard كدويژن است.
1- Low Level: با اعمال يك سطح پايين به پايه فعال مي شود . (در بعضي از ميكرو ها اين سطح پايين وجود ندارد.) مادامي كه INTX ميكرو در وضعيت صفر قرار دارد، اين وقفه فراخواني مي شود...
2- Falling Edge: وقفه با لبه پايين رونده پالس اعمالي به اينتراپت ميكرو، فعال ميشود.
3- Rising Edge : عكس حالت پايين رونده
4- Any Change : وقفه براي مورد 2 و 3 نام برده، با توجه به وضعيت پايه اينتراپت ميكرو فعال مي شود.
نكته: حداقل كريستال مورد نياز براي يك انكودر با دقت 1024 پالس، 8 مگاهرتز انتخاب شود تا مشكلي در دقت آن بوجود نيايد.
حال كه با وضعيت كلي وقفه ها آشنا شديد، به روش برنامه نويسي مي پردازيم:
در ابتدا با Wizard كدويژن تنها يكي از اينتراپت ها را فعال و آنرا به لبه بالا رونده حساس كنيد. (دقت كنيد پايه اي كه انتخاب مي شود، بايد مطابق پايه اي باشد كه در ديتاشيت AVR اينتراپت آن معرفي شده و شما در عمل پالس خروجي A يا B انكودر را به آن وصل كرده ايد.)
سپس براي آنكه اعداد بتوانند در حافظه آي سي به درستي قرار گيرند، بايد حافظه را آدرس دهي كنيد. براي اين كار به صورت زير متغير ها را تعريف كنيد:
;int  result=0
;float result2=0
;char x

;char buffer[33];// need spacechar *str=buffer,*str2=buffer
 
 
حال دستور زير را براي INTX خارجي ميكرو مي نويسيم:
 
 
 
  (interrupt [EXT_INTX] void ext_intX_isr(void

  

}

 

( if (PINC.0==0 

     ;result2=result2+1   

(if (PINC.0==1 

 ;result2=result2-1   

{

 

 
در اينجا فرض مي كنيم، نتيجه خروجي فليپ فلاپ را به پايه 0 پين C داده بوديم. (اين پايه همان جهت ساعتگرد يا پادساعتگرد انكودر را بيان مي كرد)
هدر stdlib.h را با دستورinclude به اول برنامه اضافه مي كنيم و عدد شمارش شده انكودر را با دستور زير به رشته تبديل مي كنيم:
;(void)ftoa(result2,0,str)

نتيجه در رشته str قرار مي گيرد كه مي توان با دستور (puts(str به خروجي برد. يا با دستور (lcd_puts(str بر روي ال سي دي به نمايش در آوريد.
در زير يك نمونه سورس كد تست شده با آي سي ATMEGA64 و با متصل نمودن 2 انكودر و همچنين ارسال اطلاعات بر روي كامپيوتر براي ديدن اعداد  قرار گرفته است:
براي دانلود كليك كنيد:
 
دانلود این فایل فقط برای اعضای سایت می باشد. اگر شما هم می خواهید دانلود کنید، باید در سایت عضو شوید.
  
 
بحث و سوال در مورد اين مطلب در انجمن:
 
 
 
 
   
 ( امتیازها: 13)
          بازديدها: 51106    نظرات:46
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

kingcyrus     

تاريخ: 24/07/1393 - 13:01

لینک دوم مشکل داره -_-
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

skylighter     

تاريخ: 13/08/1393 - 18:07

همین برنامه رو برای bascom میخوام میشه راهنمایی کنین
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

mjs1990s     

تاريخ: 26/08/1393 - 11:49

سلام
لطفا لینک دوم رو اصلاح کنید
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

فیبر نوری     

تاريخ: 27/08/1393 - 23:14

سلام
من میخام از طریق اسن شفت انکودر موقعیت موتور رو ارزیابی کنم منو راهنمایی میکنید؟
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

mohammad341     

تاريخ: 9/11/1393 - 00:19

سلام فایل زیپ را دانلود کردم ولی اکترکت نمیشود .تشکر
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

امین-ف     

تاريخ: 18/12/1393 - 14:25

سلام
خیلی ممنون از مقاله خوبتون. یه سوال داشتم، با همین مداری که شما طراحی کردید یعنی با AVR و استفاده از 4013 برای شمارش پالسهای یه اینکدر 2500 پالسی هم میشه به خطای نزدیک به صفر رسید یا در اون صورت مدار رو باید ارتقا داد؟؟؟ در ضمن برای 2500 پالس فرکانس میکرو باید چند باشه؟؟؟
در ضمن موتور گیربکسی هم که قراره اینکدرم روش نصب بشه 1500 دور در دقیقه است
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

am63     

تاريخ: 18/01/1394 - 12:52

سلام
میشه لطفا فایل برام ایمیل کنید فایل دانلود دومی خراب
abbaspoumasoud@yahoo.com
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

red light     

تاريخ: 22/02/1394 - 09:52

لینک دوم خرابه لطف میکنید کل مقاله رو به ایمیلم بفرستین
maliheghamary@ymail.com
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

اسلامی     

تاريخ: 5/06/1394 - 00:34

تشکر میکنم بابت مطالب کاربردیتون.خواستم بدونم در مورد سرو موتور و استپ موتور هم مطالب کاربردی دارید در اختیارم بگذارید.ممنون میشم
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

amirdmt     

تاريخ: 1/04/1395 - 20:25

سلام
فایل دانلود آسیب دیده وباز نمیشه، لطفاذ فایل پروژه رو دوباره اپلود کنید
و اگه شد به من هم خبر بدین چون به این پروژه نیاز دارم
خیلی ممنون
amiraghamohamadi7@gmail.com
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

حسن حاجی ابراهیمی     

تاريخ: 9/04/1395 - 17:38

با عرض سلام

من یک انکودر اتونیکس دارم و در مرکز یک چرخندنده نصبش کردم و خروجیشو به یک کانتر دادم که بر اساس تعداد پالسهایی که انکودر میشمرد به کانتر فرمان بده در ضمن ما کانتر را روی متراز خاصی تنظیم کرده ایم (6متر) بعد از شمردن 6 متر توسط کانتر فرمان به کاتر داده و محصول ما را برش میزند . ولیکن برش ما متراژش متغیر میشود . در ضمن کانتر کالیبره شده است . لطفا راهنمایی کنید. 09193529982
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

مری قشنگه     

تاريخ: 18/06/1395 - 17:04

سلام
این نقشه ای که شما کشیدید یه جک خنده داره smile-52
باید از این ایسی استفاده کنید ls77366
لطفا دقت کنید و بندگان خدارو سرگردون نکنید
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

قرباني ب     

تاريخ: 6/07/1395 - 19:25

سلام
لطفا در مورد ارتباط مستقيم انكودر و كامپيونر ( خواندن اطلاعات خروجي انكودر توسط رايانه ) راهنمايي كنيد .
رابط مورد نياز را معرفي كنيد .منظورم خواندن اطلاعات خروجي انكودر ها بدون نياز به PLCهست .
با تشكر .
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

سارا عسکری     

تاريخ: 8/12/1395 - 16:35

سلام ممنون از لطفتون.لینک دوم خرابه
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

76876876hjgj     

تاريخ: 7/05/1397 - 04:25

سلام اگر انكوذر را با سرعت بچرخانيم اشتباه نشون ميده و خيلي از پالس ها جا مي مونه و خونده نميشه .راه كاري داريد؟
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

behy001     

تاريخ: 6/08/1397 - 14:20


سلام تشکر، ولی لینک دوم خرابه
اگر امکان داره دوباره بگذارید.
behzad.moghaddamnia@gmail.com
[پاسخ]
ارسال نظر

 نام شما:  ايميل:
تصوير کد:
بیست و یک منهای هفت

کد امنيتي:
موضوعات
باز کردن همه شاخه ها | بستن كل شاخه ها

آمار سايت
آمار مطالب:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 0
  مجموع مطالب: 95
  کل نظرات: 462



آمار بازديد:
  بازديد امروز: 35
  بازديد ديروز: 132
  مجموع بازديدها: 4682406



آمار کاربران:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 0
  مجموع کابران: 11029
  بن شدگان: 4

آخرين عضو مكاترونيك:


pspice16.5

رتبه گوگل
Display Pagerank