انکودر (Encoder) وسیلهای است که در ماشینهای صنعتی استفاده میشود؛ بهطورکلی انکودر به وسیلهای گفته میشود که یک حرکت مکانیکی (خطی و دورانی) را به سیگنال الکتریکی تبدیلکرده تا بتوان مشخصههای متفاوتی را از آن سیگنال مورد استفاده قرار داد، یا به طور سادهتر انکودرها وسیلهای هستند که حرکت دورانی یا خطی را به سیگنال دیجیتالی ۰ یا ۱ تبدیل میکنند؛ البته ناگفته نماند که بعضی از انکودرها خروجی آنالوگ (۰ تا ۱۰ ولت و یا ۴ تا ۲۰میلی آمپر) دارند.
به طور مثال:
- در یک برنامه برش طولی، یک انکودر با یک چرخ اندازه گیری به دستگاه کنترل اعلام می کند که چه مقدار مواد داده شده است، بنابراین دستگاه کنترل می داند که چه زمان برش دهد.
- در یک رصدخانه، انکودرها با ارائه بازخورد موقعیت، می گویند که آینه متحرک در چه موقعیت مکانی است.
- در جک های بالابر راه آهن، بازوی دقت حرکت توسط انکودرها مشخص می شود، بنابراین جک ها به صورت هماهنگ حرکت می کنند.
- در یک سیستم نرم افزاری servoسروو دقیق، سیگنال انکودر برای کنترل زمان بندی و سرعت چرخش بطری ، توسط PLC استفاده می شود.
کاربرد انکودر چیست؟
انکودرها معمولا در سیستم های اتوماسیون و کنترلی در قسمتی نصب می شوند که بتوانند از خروجی فیدبک را برای کنترل ارسال کنند و پارارمترهای زیر را مشخص کند:
-
اندازه گیری سرعت
-
اندازه گیری و کنترل موقعیت
-
جهت چرخش شفت
شما تصور کنید که قصد کنترل سرعت یک موتور الکتریکی را دارید ،اگر شما فرمان های موتور را از یک اینورتر به آن اعمال کنید و سرعت را کم و یا زیاد نمایید توانسته اید تا سرعت موتور را کنترل کنید ولی مشکل اصلی زمانی پیش می آید که شما قصد داشته باشید تا سرعت موتور را روی سرعت خاص به صورت دقیق و ثابت نگه دارید در این حالت شما نیاز به گرفتن فیدبک از موتور هستید اما این سوال پیش می آید که آیا سرعت دقیق موتور همان عددی که شما به آن اعمال کرده اید هست یا نه؟،پس یکی دیگر از کاربرد های انکدر اندازه گیری سرعت موتور ها می باشد.
معرفی انواع انکودرها
ا ) انکودر از لحاظ ساختمان :
انکودر های خطی
انکودرهای خطی دارای انواع نوری، مغناطیسی و مقاومتی بوده و برای اندازهگیری خطی استفاده میشوند. نوع نوری، دارای خروجی دیجیتال و نوع مغناطیسی و مقاومتی دارای خروجی آنالوگ میباشند. از این نوع انکودرها در دستگاههای پرس برای اندازهگیری میزان حرکت طولی پیستون و در غلتک ها برای اندازه گیری فاصلهی طولی بین توپیهای غلتک استفاده میشود.
انکودر های چرخشی و یا دورانی
انکودر دوار یا شافت انکودر (Shaft encoder)، در واقع یک وسیلهی الکترومکانیکی است که موقعیت یا حرکت زاویهای یک شافت یا یک محور را به یک کد آنالوگ یا دیجیتال تبدیل میکند. این نوع انکودر به طور معمول از یک یا دو جفت LED فرستنده و گیرنده و یک دیسک مدرج (سیاه و سفید یا جای خالی و جای پر) استفاده میکند. دیسک مدرج مابین سنسورهای فرستنده و گیرنده قرار دارد و این مجموعه بر روی محور چرخان دستگاه قراردارد. هنگام چرخش شافت، دیسک درجه بندیشده به همراه شافت میچرخد و سنسورهای گیرنده و فرستنده ثابت میمانند. درنتیجه سیگنالی که از سمت فرستنده به گیرنده ارسال میشود توسط چرخش دیسک به طور متوالی قطع و وصل میشود به این صورت ما در ورودی گیرنده یک قطار از پالسهای متوالی صفر و یک منطقی داریم. این پالسها همان کدهایی هستند که انکودر تولید میکند و برای اینکه تبدیل به موقعیت و یا تعداد دوران شافت شود به ورودی یک دیکودر [۱] داده میشود. هر چه تعداد نقاط سیاه و سفید روی دیسک بیشتر باشد تعداد این صفر و یکهای منطقی در یک دوران کامل(۳۶۰ درجه) بیشتر میشود و در نتیجه دقت اندازهگیری آن افزایش مییابد.
۲ ) انکودرها از لحاظ عملکرد :
انکودر نوری (Optical)
انکودرهای نوری دقیقترین نوع انکودرها هستند. وقتی یک انکودر نوری را انتخاب میکنیم خیلی مهم است که انکودر مذکور حفاظتهای اضافی برای جلوگیری از آلودگی ناشی از گرد و غبار، لرزش (vibration) و سایر شرایط رایج در محیطهای صنعتی را داشته باشد.
انکودر مغناطیسی (magnetic)
انکودرهای مغناطیسی با وجود اینکه از انکودرهای نوری مقاوم ترند و اغلب در محیطهای در معرض آلودگی، بخار، لرزش و سایر انواع تداخلهای محیطی استفاده میشوند ولی قدرت تفکیک (resolution) یا دقت آنها نسبت به انکودرهای نوری پایینتر میباشد.
انکودر خازنی (capacitive)
انکودرهای خازنی [۲] نسبت به دو مدل قبلی در دنیای صنعت تازه وارد محسوب میشوند. انکودرهای خازنی از نظر نیرومندی مانند مدلهای مغناطیسی هستند ولی قدرت تفکیکپذیری انکودرهای نوری از انکودرهای خازنی بالاتر است. البته انکودرهای خازنی بدون توجه به نوع تکنولوژی مورد استفاده قابلیت تشخیص حرکت و تبدیل آن به سیگنالهای استاندارد رایج در صنعت را دارا هستند.
۳ ) انکودرها از نظر نوع خروجی سیگنال :
انکودر افزایشی (Incremental)
اگر انکودر فقط دارای یک ردیف پالس باشد نمیتواند به درستی جهت چرخش را نشان دهد و باید دارای پالس دومی نیز باشد که به این منظور باید یک فرستنده و گیرندهی نوری دیگر به مجموعه اضافه شود. بنابراین در لحظاتی که نمیتوان جهت چرخش شفت را تشخیص داد (در لحظاتی که هر دو پالس یک منطقی و یا صفر منطقی هستند) نیاز به پالس سومی داریم که این پالس بر اثر یک دور چرخش کامل به وجود میآید که به آن پالس فرمان میگویند و از آن برای شمارش تعداد دوران نیز استفاده میشود.
انکودر مطلق (Absolute)
مهم ترین ایرادی که بر انکودرهای افزایشی وارد است ذخیره نشدن دایمی پالسهای شمارش شده است. این نوع انکودر شمارش پالسها را در اکسترنال کانتر (Counter External) که با کوچکترین اختلالی اطلاعاتش از بین میرود، ذخیره مینماید. انکودر با از بین رفتن اطلاعات ثبت شده نمیتواند موقعیت صحیح را بدست بیاورد. برای حل این مشکل از انکودرهای مطلق استفاده میشود. انکودرهای مطلق دیسکی دارای قطعاتی به صورت دوایر با مرکز یکسان هستند که که نقطه شروع این دوایر در مرکز دیسک انکودر چرخشی است. چنانچه حلقه به سمت محیط دایره برود هر یک از آنها دارای دو برابر قطعه نسبت به حلقه قبلی و داخلیتر خود خواهند داشت اولین حلقه که داخلیترین حلقههاست یک قسمت شفاف و یک قسمت تیره خواهد داشت و حلقه سوم نیز از هر یک از قطعات ۴ قسمت خواهد داشت؛ اگر انکودر دارای ۱۰ حلقه باشد آخرین حلقه یا دورترین آن از مرکز دارای ۵۱۲ قطعه میباشد؛ چنانچه هر حلقه از انکودر مطلق دارای دو برابر قطعه از حلقه قبلی خود باشد بین شمارهها یک سیستم باینری برقرار میشود. در این نوع انکودر به ازای هر حلقه روی دیسک یک منبع نور و دریافتکنندهی آن وجود دارد.
نحوه آموزش انکودر:
روش عملكرد انكودر ها به اين صورت هست كه به ازاي مثلا يك دور كامل 3600 پالس توليد كنند. در نتيجه با شمارش پالس ها مي توان ميزان چرخش و در نتيجه ميزان جابه جايي را محاسبه نمود.
فرض كنيد يك چرخ با قطر 10 سانتي متر را به يك انكودر بسته ايم. در اينجا به ازاي هر دور چرخ 3600 پالس توليد مي شود كه در حقيقت اين 3600 پالس بيانگر محيط طي شده دايره چرخ مي باشد. كه با يك نسبت ساده در برنامه نوشته شده براي انكودر، قابل محاسبه خواهد بود. بديهي است هرچه تعداد پالس ها بيشتر شوند، دقت محاسبه حركت هم بيشتر مي شود ولي بايد اين نكته را هم در نظر گرفت كه آي سي متصل شده به انكودر نيز قادر به شمردن اين پالس ها با توجه به كريستال به كار برده شده در شمارنده، باشد.
از جمله انكودرهاي مستقل كه در حال حاظر در بازار به انكودر آسانسورها نيز معروفند، انكودرهاي Autonics مي باشند كه با پالس هاي گوناگون و دقيق از جمله 1024، 2048، 3600 (از 10 پالس تا 10000 پالس) در بازار مي باشند. اين انكودر ها در گروه بندي به انكودرهاي INCREMENTAL نيز معروف هستند .
عملكرد اصلي يك انكودر بر اساس توليد پالس هاست و هدف اصلي ما در اين آموزش ارائه ي روشي مطمئن براي شمارش اين پالس ها توسط AVR مي باشد.
انکودر چگونه عمل می کند؟
بسياري از انكودر هاي بازار داراي چند سيم مختلف هستند كه به طور كلي به صورت زير مي باشد:
1- سيم زمين (GND)انكودر
2- سيم A براي پالس اول
3- سيم ولتاژ (VCC) انكودر
4- سيم A براي پالس اول
5- سيم Z كه به ازاي هر دور كامل انكودر (از لحظه حركت آن ، تا يك دور كامل) يك پالس توليد مي كند.
6- سيم شيلد دار براي حذف نويز
7- سيم B براي پالس دوم با اختلاف فاز 90 درجه نسبت به پالس A
تعداد پالس هاي توليدي A يا B براي شناسايي تعداد پالس ايجاد شده براي هر دور انكودر كافي است. ولي نكته اصلي اينجاست كه علاوه بر هر تعداد پالس، ما نيازمند به اطلاعات جهت چرخش نيز هستيم و اينجاست كه پالس B به كمك ما مي آيد. اين پالس به دليل اختلاف فازي كه دارد در چرخش هاي CW (ساعتگرد) انكودر جلوتر و در چرخش هاي CCW (پادساعتگرد) انكودر عقب تر قرار مي گيرد.
روش شمارش پالس ها با AVR :
از مهمترين مواردي كه در شروع كار بايد در نظر گرفت، روش خواندن اين پالسها با خطاي نزديك به صفر درصد است . پس انتخاب بهترين روش، براي خواندني با اين دقت، نيازمند راهكارهايي است كه در ادامه ذكر خواهند شد.
گام هايي كه در اينجا براي شمارش پالس ها نياز است:
1- ساخت مدار ساده فليپ فلاپ از نوع D براي شناسايي پالس پيشتاز (در حقيقت براي شناسايي CCW يا CW انكودر)
2- فعال سازي Interupt خارجي ميكرو براي شمارش تعداد پالس هاي توليدي و ارتباط اين پالس با ميكرو به بهترين شكل
3- ايجاد سطح ولتاژ مناسب آي سي براي حذف كاهش خطا با توجه به ولتاژ انكودر (5 ولت يا 12 ولت)
هدف بزرگ ديگري كه اين مقاله دنبال مي كند، ارائه روشي است كه از انكودرهاي 12 ولتي هم مانند انكودرهاي 5 ولتي بتوان استفاده نمود، ولي مشكل اصلي استفاده از انكودرهاي 12 ولتي، ايجاد پالس تا سطح 10 ولت است كه اين حد از مقدار قابل قبول AVR بيشتر بوده و منجر به آسيب رسيدن به اين آي سي مي شود. لذا در اينجا روشي را ارائه خواهيم نمود تا از اين آسيب نيز جلوگيري كامل به عمل آيد.
براي حل اين مشكل تقسيم مقاومتي مناسب، ولتاژ 10 ولت را به سطح 5 ولت مي آورد و قابل اعمال براي عملكرد صحيح فليپ فلاپ مي شود.
و اما شروع كار:
در مرحله اول مي خواهيم با آي سي 4013 يك فليپ فلاپ از نوع D (تاخيري) را براي اتصال به انكودر آماده سازي كنيم. (PDF اين آي سي در فايل پيوست قابل دانلود است.)
نتيجه خروجي اين فليپ فلاپ يك سطح منطقي صفر و يك است كه به يكي از پورت هاي آي سي وصل مي شود و براي شناسايي CCW يا CW چرخيدن انكودر به راحتي استفاده مي شود. نكته مهم ديگر در مدار عملي اين فليپ فلاپ، استفاده از مقاومت هاي نويز گير هست كه حتما شما نيز در مدار عملي بايد از آنها بهره ببريد.