نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
مهدی دمیرچیلو

پروژه و آموزش arduino ماژول روتاری انکودر rotary encoder

به نام خدا : تو این مطلب از سری مطالب پروژه های آردوینو ، میخوام اموزش و پروژه کار با ماژول روتاری انکودر چرخشی رو بزارم براتون ( پروژه و آموزش arduino ماژول روتاری انکودر rotary encoder )
پروژه و آموزش arduino ماژول روتاری انکودر rotary encoder

پروژه و آموزش arduino ماژول روتاری انکودر rotary encoder


داستان این مطلب(شوخی جالب^_^) : تو مسجد بودم، کسی نبود، با رفقا بودیم، رفتم بالای منبر نشستم، حوصله نداشتم و خسته بودم، یهو رفیقم اومد گفت : رسول خدا(ص) گفته که در آینده بوزینه ها از منبر میرن بالا هیچی منم معدم تعجب کرد یه لحظه از این جمله رفیقم و میخندیدم از این شوخی رفیقم(داستان دقیق این ماجرا به صورت زیر هستش، خواستید بخونید)

روزی نبی اکرم در خواب دید که بوزینه ها و میمون هایی از منبر او بالا میروند. این موضوع پیامبر را بسیار متأثر و محزون ساخت؛طوری که فردای آن روز پیامبر را دیدند وقتی میخواست بالای منبر برود منبرش را با حالت حزن عجیبی به دقت نگاه می کرد. و میگویند بعد این رویا پیامبر تا آخر عمر مبارکش صورتشان هرگز متبسم نمیشد...
و آن بوزینه ها و میمون ها همان بنی امیه ملعون و خبیث بودند که یکی پس از دیگری ادعای خلافت اسلامی را کردند.و شجره ملعونه هم اشاره دیگری به خاندان بنی امیه دارد.
این داستان در آیه 60 سوره اسرا اومده(بنا به تفسیری) که میتونید شرح کاملش رو در لینک زیر ببینید اگه علاقه داشتید یا کنجکاو!!! بودید : تفسیر آیه 60 سوره اسرا
پس نتیحه میشه گرفت که اون بوزینه هه من نبودم. laugh


مطلب مرتبط : قبلا درباره یه مدل از روتاری انکودر یه مطلب گزاشته بودم که میتونید بخونیدش(تو مطلب زیر توضیحات بیشتری دادم) :
آموزش کار با Rotary Encoder و پرژوه کنترل Step Motor


خرید این قطعه : برا خرید این قطعه میتونید به لینک زیر مراجعه کنید که خودمم از همین لینک زیر خریدم، البته انواع دیگه ای هم وجود داره در سایت های دیگه که میتونید مراجعه کنید و بررسی کنید و بخرید. crazy
ماژول سنسور چرخش FZ0534 – شافت اینکودر – Rotary Encoder


آموزش کار با روتاری انکودر چرخشی

خب این قطعه یه قطعه ساده ولی کاربری هستش(حالا کاربردش کجاس نمیدونم laugh نشستم فک کنم ببینم کجاها میشه ازش استفاده کرد pardon، ولی خب از ظاهر هر قطعه میشه میزان کاربردش رو فهمید، خب معلومه که این جمله اشتباهه bad، چرا؟ بععععععله مثلا از ظاهر خازن و مقاومت میشه میزان کاربردشون رو فهمید؟ خب معلومه که عمرا نمیشه و باید عملکرد هر قطعه رو دقیقا بدونی تا بتونی از اون قطعه در جای مناسب خودش استفاده کنی، و همین دونستن عملکرد دقیق و درست هر قطعه خیلی مهمه buba)
آموزش کار با روتاری انکودر چرخشی
خب عکس بالا گویای نحوه کار این قطعه هست، که در هر تغییر زاویه این قطعه 4 تا پالس میده.

CW = ClockWise = در جهت چرخش عقربه های ساعت

CCW = Counter ClockWise = خلاف جهت چرخش عقربه های ساعت

در جهت عقربه های ساعت : خب اون خطوط قرمز یعنی 1درجه و اگه از خط قرمز اولی بریم به سمت دومی 1درجه انگار روتاری انکودر ما چرخیده در جهت چرخش عقربه های ساعت.
در خلاف جهت عقربه های ساعت : اون خطوط سبز هم مربوط به تغییر زاویه در خلاف جهت چرخش عقربه های ساعت هستش.
 
پایه های روتاری انکودر چرخشی : این قطعه 5تا پایه به صورت زیر داره : VCC،GND،S1،S2،KEY
که پایه های VCC و GND کارشون که معلومه.
پایه KEY برا کلید هستش، همون طور که میدونید این قطعه روتاری انکودر علاوه بر روتاری انکودر بودن، مثل یه کلید هم هستش که با فشار دادن اهرمش به سمت پایین کلیدش قطع میشه(کلیدش در حالت عادی مقدار VCC داره و وقتی کلید رو فشار بدید مقدار پایه KEY برابر GND میشه)
پایه هایS1 و S2 هم همون پایه هایی هستن که پالس روشون اعمال میشه و ما مقدار این پایه ها رو میخونیم(البته این پایه ها در شکل بالا با نام های A و B ذکر شده که زیاد چیز مهمی نیست.  rtfm )
 

سوال1 : چطور میشه فهمید که روتاری انکودر یه درجه چرخیده؟
جواب1 : خب در بالا گفتم و اون عکسه هم بازم گویای مسئله هستش ولی باز بیشتر توضیح میدم.
در جهت عقربه های ساعت : خب در این حالت با توجه به عکس بالا در یه درجه روتاری انکودر پالس هایی به صورت زیر ارسال میکنه(جدول زیر، قسمت "Coding for clockwise rotation")، یعنی وقتی روتاری انکودر یه درجه چرخید این قطعه 4 پالس به صورت جدول زیر ارسال میکنه.(یعنی پایه های S1 و S2(یا همون A و B) به صورت جدول زیر مقادرشون تغییر میکنه با 1 درجه چرخش روتاری انکودر.)
در خلاف جهت عقربه های ساعت : اینم مثل حالت بالا هستش فقط نحوه تغییر پایه ها فرق داره که در جدول زیر(Coding for counter-clockwise rotation) مشاهده میکنید.

Coding for clockwise rotation

 B A Phase
0 0 1
1 0 2
0 1 3
1 1 4

Coding for counter-clockwise rotation

B A Phase
0 1 1
1 1 2
1 0 3
0 0 4
 
سوال2 : حالا تو کد نویسی چیکار کنیم تا راحت متوجه چرخش یه درجه ای روتاری در جهت چرخش عقربه های ساعت بشیم؟
جواب2 : خب بازم با توجه به عکس بالا :
در جهت عقربه های ساعت : وقتی پایه های A و B (همون S1 و S2) مقدار جفتشون برابر HIGH (همون 1 منطقی) شد یعنی روتاری انکودر 1 درجه در جهت عقربه های ساعت چرخیده.
در خلاف جهت عقربه های ساعت : وقتی پایه های A و B (همون S1 و S2) مقدار جفتشون برابر LOW(همون 0 منطقی) شد یعنی روتاری انکودر 1 درجه در خلاف جهت عقربه های ساعت چرخیده.
 
سوال3 : طبق گفته خودتون و اون جدولی که قرار دادید و او عکس، هم در چرخش در جهت چرخش عقربه های ساعت و هم خلافش ما حالت HIGH شدن هر دو پایه و LOW شدن هر دو پایه رو داریم، خب حالا مثلا هر پایه LOW شد(یا HIGH شد)، حالا چطور میشه فهمید که این مربوطه به چرخش در جهت عقربه های ساعت یا خلافش؟
جواب3 : خب سوال خوبی بود، در زیر توضیح میدم.
از وقفه استفاده میکنیم : خب اگه بیایم یکی از پایه های S1 یا S2 رو به یه پایه وقفه وصل کنیم(مثلا وقفه روی پایه S1 رو فعال میکنیم) و حالت وقفه رو میزاریم روی حالت RISING، حالا این وقفه کی رخ میده؟ بعله وقتی مقدار پایه S1 از 0 به 1 منطقی تغییر پیدا کنه، حالا این داخل تابع وقفه میایم بررسی میکنیم اگه مقدار پایه S1 با S2 برابر بود که یعنی روتاری 1 درجه در جهت عقربه های ساعت چرخیده و مقدار پایه های S1 و S2 عکس هم بود که یعنی روتاری 1 درجه در خلاف جهت چرخیده.(این هم جواب سوال 3 بود و هم توضیح کدهای پروژه2 که در ادامه قرارش دادم)
از وقفه استفاده نمیکنیم : خب تو این حالت هم به سری شرط و شروط تعیین میکنیم تا حالت RISING شدن پایه S1 رو متوجه بشیم و بعد میایم پایه های S1 و S2 رو با هم بررسی میکنیم و بعد اگه هر دو 1 بودن که یعنی در جهت و اگه هر دو 0 بودن یعنی در خلاف جهت روتاری 1 درجه چرخیده.(اینم جواب سوال3 و توضیح پروژه 1 laugh )
 
سوال 4 : خب حالا اگه وقفه پایه S2 رو فعال کنیم و پایه S1 وقفه نداشته باشه فرقی میکنه؟
تست کنید و نتیجه رو ببینید، چون من بگم هم بد توضیح میدم و هنگ میکنید، همینو به عنوان تمرین تستش کنید.

پروژه آردوینو روتاری انکودر چرخشی

شماتیک این پروژه آردوینو به صورت زیر هستش :
توجه 1 : در زیر 2-3 تا پروژه قرار میدم که شماتیک همشون همین عکس بالا هستش.
توجه 2 : در دو پروژه زیر از پایه KEY استفاده نکردم چون ربطی به مطلب نداره و یه کلید معمولی هستش که وقتی روش کلیک بشه مقدارش 0 میشه و در حالت عادی مقدار این پایه 1 هستش، اگه خواستید هم میتونید از این پایه استفاده کنید و ربطی به فهمیدن چرخش روتاری انکودر نداره و فقط یه کلید هستش(دو بار گفتم حالا باز بیاید سوال کنید.  laugh )
پروژه آردوینو
 
پیشنیاز هایی برای فهم بهتر کدهای چند تا پروژه زیر : برای این که در فهم کدهای این چند تا پروژه به مشکل بر نخورید باس مطالب مربوط به جلسات 1،4،5،6،10 از سری مطالب آموزش آردوینو رو بخونید.
 
کد های پروژه1

 
کدهای پروژه 2(از وقفه استفاده شده)

 


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


منبع این مطلب لینک مقابل از سایت آردوینو هستش : Reading Rotary Encoders
البته به نظرم خیلی چیزای اون لینک بالا اضافه هستش و بعضی پروژه ها رو هم تغییراتی توش دادم چون به نظرم مشکلاتی داشت.
اگه این مطلب مفید بود براتون 3تا صلوات برا شادی روح شهدا و امام شهدا بفرستید.
در ضمن سوالی بود بگید جان داش، حالا اگه بلد بودیم جواب میدیم و گرنه میگم بلد نیستم دیگه، غیر از این نیستش که، آخه بعضی دوستان خجالت میکشن سوال بپسرن، جان داش منو تو هر انجمنی ببینی بیش از این که به سوالات دیگران جواب داده باشم بیشتر تو اون انجمن ها سوال پرسیدم. laugh
راستی در مطالب بعدی پروژه MP3 PLAYER با آردوینو با قابلیت کنترل از طریق نرم افزار نوشته شده تحت ویندوز و پروژه MP3 PLAYER با صفحه لمسی و نمایشگر رنگی و بعد پروژه ضبط صدا رو قرار میخوام بدم تو سایت. diablo
فعلا یا علی.

پسورد فایل های سایت :
www.dmf313.ir
مهدی دمیرچیلو جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
28

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. Avatar

    مهمان

    ابراهیم زاده

    سلام عالی هروقت میام سایت شما انرژی میگیرم
    مطالب علمی ناب،انقلابی ،اسلامی ،همه چیز تمام

    1398/02/30
    03:12
  2. Avatar

    مهمان

    محسن

    من میخوام با استفاده از اردوینو حرکات انکودر رو تو یه بازه مثلا 60 ثانیه دریافت کنم بعد با یه استپر ازش تقلید کنم!
    به نظرتون با خروجی pwm میشه؟🤔

    1398/02/19
    05:11
  3. Avatar

    مهمان

    محسن

    این همون خروجی pwm هست که اکثر انکودر ها دارن؟

    1398/02/19
    05:06
  4. Avatar

    مهمان

    حاج علی

    سلام عیدتونم مبارک
    یه پروژه دارم فعلا نمیخوام از اینکودر صنعتی سافتاده کنم
    اگر بخام از همین انکودر استفاده کنم ایا میتونه پارامتر هی زیرو بهم بده یا ن؟
    1_سرعت چرخش؟ 2_مسافت طی شده؟(یعنی اگر وصل شه به یک چرخ میتونه از روی میزان چرخش مسافت طی شده بده؟اگر تعداد چرخش رو بده میشه توی فرمول گذاشت و مسافتو حساب کرد بحث اینه که تعداد دور رو میده یا ن)

    1398/01/04
    12:05
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام.اینو وصل کنی به موتور؟ …. focus
      میزان چرخش موتور رو که میتونی بفهمی براحتی.
      ب ازای هر درجه چرخش روتاری فوق یه پالس میده فک کنم.خب مجموع پالسا میشه مقدار چرخش موتور

      سرعت چرخش موتور هم به کمک تایمر میتونی حساب کنی.
      تعداد پالس های دریافتی در واحد زمان!

      اما مسافت طی شده!!!
      اومدیم موتور چرخید ولی دستگاه حرکت نکرد…از این جور مشکلا بگذریم.با یه تست بشه فهمید که مثلا به ازای هر 10 پالس.موتور یک دور کامل.در نتیجه لاستیک یک دور کامل ( فرضم بر اینه که میخوای مسافت طی شده ماشین کنترلی! رو حساب کنی ) میزنه و میری حساب میکنی که لاستیک وقتی یه دور کامل میزنه چقدر دستگاه جابجا میشه.مثلا 10 سانت.
      فلذا به ازای هر 10 پالس روتاری فوق.دستگاه 10 سانت جابجا میشه….

      1398/01/04
      12:15
      • Avatar

        مهمان

        حاج علی

        سلام دمت گرم بابت پاسخ جامعت
        در خصوص تایمر دقیقا چجور؟
        ینی یه تایمر خارجی به اردیونو وصل کنم؟چجور کانفیگ رو انجام بدم اونوخ
        راستی جهت چرخش اینکودرم میشه بدست اورد درسته؟

        1398/01/08
        12:37
        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          میکرو خودش واحد تایمر داره

          1398/01/08
          12:39
          • Avatar

            مهمان

            حاج علی

            ممنون
            تازه کارم laugh خیال کردم باس تایمر خارجی وصل کنم
            تابعشو میدونی بنویسی برام unknw

            1398/01/09
            08:20
  5. Avatar

    مهمان

    امیرحسین

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

    1397/06/10
    07:16
  6. Avatar

    مهمان

    zeinali,p

    در این مورد نیازی به انکودر دو شفته نیست چرخ دنده رو با یه ساپورت می شه اتصال داد و اگر هم بخوای می شه یه لاستیک ضد سایش بگیری تا با قعطه اصطحلاک داشته باشه

    1396/11/28
    10:33
  7. Avatar

    مهمان

    بهرام

    سلام وقت بخیر
    بعضی از شاسی های ربات مسیریاب که توبازارهستن خودشون موتور دارن که بعضی هاشون انکودر دارن بعضی هاشون هم نه
    کدهای راه اندازی موتور با انکودر و بدون انکودر در آردوینو باهم متفاوته؟؟
    من فقط راه اندازی موتور بدون انکودرشو بلدم
    اگر تفاوت داره لطفا راهنماییم کنین

    1396/11/20
    10:12
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      نمیدونم چه مدل انکودری میگی.

      1396/11/22
      09:24
  8. Avatar

    مهمان

    مسعود

    سلام ممنون از مطالب مفیدتون
    من میخواستم یک روتاری اینکودر افزایشی که در واقع به عنوان متر عمل میکنه رو از طریق پورت سریال به کامپیوتر وصل کنم که اندازه ی متر رو نمایش بده
    اگر ممکنه راهنمایی کنید ممنون

    1396/08/21
    04:12
  9. Avatar

    مهمان

    سینا

    گفتی نظر بده منم دارم میدم yes
    این روتاری انکودر همون روتاری روی ضبط خودرو نیست؟؟ pardon
    و اینکه اگه برا تنظیم دما تو اردوینو استفاده کنم پایداری داره(یعنی عمرش خوبه؟؟)
    و هیچی دیگه ناراحت نشی سوالا چرند و پرنده blush

    1396/05/28
    10:54
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      ضبط خودرو؟ بعید میدونم تو ضبط خودرو از همچین قطعه ای استفاده کرده باشن – نمیدونم دقیقا.
      برا تنظیم دما بخوای از آردوینو استفاده کنی؟ نباید مشکلی رخ بده – ترجیها از بردش استفاده نکن – خودت یه برد برای مدارت بزن.

      1396/05/29
      08:56
  10. Avatar

    مهمان

    آرمان درخشانی

    سلام
    ممنون از توضیحات ارزنده ات
    اجرت با سید الشهدا

    1396/01/31
    07:34
  11. Avatar

    مهمان

    سارا

    سلام ببخشید نمیشه این ماژول رو با avr راه اندازیش کنیم؟

    1396/01/27
    05:08
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-میشه

      1396/01/28
      03:52
  12. Avatar

    مهمان

    بهرام

    سلام مطالبتون خیلی جالبه فقط یه سوال داشتم اونم اینه که این انکدرو میشه به یه چرخ وصل کرد ؟
    که با چرخ بجرخه؟
    blum

    1396/01/05
    06:44
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – موتورو به چرخ وصل کنی و به روتاری؟ موتورت باید دو شافته باشه – فک کنم بهش همینو میگن

      1396/01/06
      08:13
      • Avatar

        مهمان

        zeinali,p

        در این مورد نیازی به انکودر دو شفته نیست چرخ دنده رو با یه ساپورت می شه اتصال داد و اگر هم بخوای می شه یه لاستیک ضد سایش بگیری تا با قعطه اصطحلاک داشته باشه

        1396/11/28
        10:32
  13. Avatar

    مهمان

    tohid

    عالی بود داداش تو سایتت مطالب اموزنده ای گذاشتی دمت گرم موفق باشی.

    1395/12/01
    10:22
  14. Avatar

    مهمان

    ابی

    مطلب جالب و به درد بخوری بود.تشکر

    1395/10/03
    10:26
  15. Avatar

    مهمان

    مریم

    سلام وخسته نباشید. یه سوال اینکه در جاهای پر سر و صدا هم میشه از این سیستم آردوینو استفاده کرد؟

    1395/05/02
    07:28
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بیشتر بحث نویز مطرح هستش تا آلودگی صوتی

      1395/05/02
      05:29
  16. Avatar

    مهمان

    alies

    سلام اقا مهدی
    امیدورام خوب باشی
    میخواستم بدونم آردینو تو صنعت کاربرد داره؟

    1395/05/01
    04:41
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تا صنعت رو چی تعریف کنی
      خب آردوینو همون avr هستش – Avr هم که هر جا بری نوشته نویز میگیره و البته راه حل هایی هم ارائه دادن، باید بسته به محیط استفاده پروژه، میزان امکانات مورد نیاز، حداکثر هزینه تمام شده پروژه و… بهترین میکرو رو انتخاب کنی – ممکنه یه جا همین آردوینو کافی باشه – ممکنه یه جا آرم هم جواب نده.

      1395/05/01
      04:47
  17. Avatar

    مهمان

    امین

    جالب بود . دوست دارم اردوینو رو یاد بگیرم و تو صنعت ازش استفاده کنم
    اینم نظر . بعد نگی بی معرفت بود خوند و نظر نداد

    1395/04/21
    10:56