دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: انکودرهای صنعتی

  1. #1
    دوست آشنا
    رشته تحصیلی
    الکترونیک
    نوشته ها
    936
    ارسال تشکر
    2,911
    دریافت تشکر: 4,686
    قدرت امتیاز دهی
    4483
    Array
    hadi elec's: جدید50

    پیش فرض انکودرهای صنعتی




    مطلب اختصاصي مركز مكاترونيك ايران

    توسط :محمدرضا ناظم




    همواره يكي از مهمترين بخش هاي يك آسانسور و يا يك روبات رولر (چرخ دار) كنترل حركت و ميزان آن به صورت دقيق است. از قطعات بسيار مفيدي كه امروزه براي اين هدف استفاده مي شود، مي توان به انكودرها اشاره نمود. كه در حال حاضر به شكل هاي خاصي يافت مي شوند. هدف از اين آموزش آشنايي با انكودرهاي مكانيكي و يا نوري نيست، بلكه هدف بالاتري را در نظر داريم تا شما را با انكودرهاي جدا و انكودرهايي كه به صورت مجتمع با موتورها نصب شده اند را بررسي نماييم. در حقيقت اين انكودرها از نوع انكودرهاي مستقل و وابسته هستند كه هر دو از لحاظ عملكرد به يك شكل كار مي كنند.
    روش عملكرد انكودر ها به اين صورت هست كه به ازاي مثلا يك دور كامل 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 (پادساعتگرد) انكودر عقب تر قرار مي گيرد. اين اختلاف به راحتي در شكل زير قابل مشاهده است (براي بزرگتر ديدن تصوير بر روي آن كليك كنيد):


    و اما روش شمارش پالس ها با AVR :

    از مهمترين مواردي كه در شروع كار بايد در نظر گرفت، روش خواندن اين پالسها با خطاي نزديك به صفر درصد است . پس انتخاب بهترين روش، براي خواندني با اين دقت، نيازمند راهكارهايي است كه در ادامه ذكر خواهند شد.

    گام هايي كه در اينجا براي شمارش پالس ها نياز است:

    1- ساخت مدار ساده فليپ فلاپ از نوع D براي شناسايي پالس پيشتاز (در حقيقت براي شناسايي CCW يا CW انكودر)

    2- فعال سازي Interupt خارجي ميكرو براي شمارش تعداد پالس هاي توليدي و ارتباط اين پالس با ميكرو به بهترين شكل

    3- ايجاد سطح ولتاژ مناسب آي سي براي حذف كاهش خطا با توجه به ولتاژ انكودر (5 ولت يا 12 ولت)

    هدف بزرگ ديگري كه اين مقاله دنبال مي كند، ارائه روشي است كه از انكودرهاي 12 ولتي هم مانند انكودرهاي 5 ولتي بتوان استفاده نمود، ولي مشكل اصلي استفاده از انكودرهاي 12 ولتي، ايجاد پالس تا سطح 10 ولت است كه اين حد از مقدار قابل قبول AVR بيشتر بوده و منجر به آسيب رسيدن به اين آي سي مي شود. لذا در اينجا روشي را ارائه خواهيم نمود تا از اين آسيب نيز جلوگيري كامل به عمل آيد.

    براي حل اين مشكل تقسيم مقاومتي مناسب، ولتاژ 10 ولت را به سطح 5 ولت مي آورد و قابل اعمال براي عملكرد صحيح فليپ فلاپ مي شود.

    و اما شروع كار:

    در مرحله اول مي خواهيم با آي سي 4013 يك فليپ فلاپ از نوع D (تاخيري) را براي اتصال به انكودر آماده سازي كنيم. (PDF اين آي سي در فايل پيوست قابل دانلود است.)

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

    در زير شماتيك اين مدار را مي توانيد مشاهده كنيد (براي بزرگتر شدن تصوير، روي آن كليك كنيد...):



    و اما روش برنامه نويسي:

    تا كنون با روش شناسايي جهت چرخش انكودر آشنا شديد. همانطور كه مي دانيد ، آي سي هاي 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 به اول برنامه اضافه مي كنيم و عدد شمارش شده انكودر را با دستور زير به رشته تبديل مي كنيم:

    [COLOR=#000000]
    (void)ftoa(result2,0,str)




    نتيجه در رشته str قرار مي گيرد كه مي توان با دستور (puts(str به خروجي برد. يا با دستور (lcd_puts(str بر روي ال سي دي به نمايش در آوريد.



    منبع

  2. کاربرانی که از پست مفید hadi elec سپاس کرده اند.


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. معرفی: عجایب هفتگانه ی صنعتی دنیا ؟!
    توسط Aysajoon در انجمن مهندسی ساخت و تولید
    پاسخ ها: 7
    آخرين نوشته: 21st February 2012, 12:50 AM
  2. فایل: نمونه سئوالات حسابداری صنعتی 1
    توسط AreZoO در انجمن حسابداري صنعتی
    پاسخ ها: 3
    آخرين نوشته: 24th January 2012, 11:31 AM
  3. قطعات کاربردی در برق صنعتی
    توسط nika6749 در انجمن مقالات برق
    پاسخ ها: 0
    آخرين نوشته: 21st September 2010, 10:33 AM
  4. کاربرد های صنعتی کنترل امپدانس ربات
    توسط hengameh در انجمن رباتیک ، مکاترونیک
    پاسخ ها: 0
    آخرين نوشته: 4th September 2010, 10:41 AM
  5. با "گل ساعتی"، ساعتی بیشتر استراحت کنید!
    توسط آبجی در انجمن گیاهان داروئی و ادویه ای
    پاسخ ها: 0
    آخرين نوشته: 21st June 2010, 08:14 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •