به نام خدا : تو این مطلب از سری مطالب پروژه های آردوینو ، میخوام اموزش و پروژه کار با ماژول روتاری انکودر چرخشی رو بزارم براتون ( پروژه و آموزش arduino ماژول روتاری انکودر rotary encoder )
داستان این مطلب(شوخی جالب^_^) : تو مسجد بودم، کسی نبود، با رفقا بودیم، رفتم بالای منبر نشستم، حوصله نداشتم و خسته بودم، یهو رفیقم اومد گفت : رسول خدا(ص) گفته که در آینده بوزینه ها از منبر میرن بالا هیچی منم معدم تعجب کرد یه لحظه از این جمله رفیقم و میخندیدم از این شوخی رفیقم(داستان دقیق این ماجرا به صورت زیر هستش، خواستید بخونید)
خب این قطعه یه قطعه ساده ولی کاربری هستش(حالا کاربردش کجاس نمیدونم نشستم فک کنم ببینم کجاها میشه ازش استفاده کرد
، ولی خب از ظاهر هر قطعه میشه میزان کاربردش رو فهمید، خب معلومه که این جمله اشتباهه
، چرا؟ بععععععله مثلا از ظاهر خازن و مقاومت میشه میزان کاربردشون رو فهمید؟ خب معلومه که عمرا نمیشه و باید عملکرد هر قطعه رو دقیقا بدونی تا بتونی از اون قطعه در جای مناسب خودش استفاده کنی، و همین دونستن عملکرد دقیق و درست هر قطعه خیلی مهمه
)
خب عکس بالا گویای نحوه کار این قطعه هست، که در هر تغییر زاویه این قطعه 4 تا پالس میده.
CW = ClockWise = در جهت چرخش عقربه های ساعت
CCW = Counter ClockWise = خلاف جهت چرخش عقربه های ساعت
در جهت عقربه های ساعت : خب اون خطوط قرمز یعنی 1درجه و اگه از خط قرمز اولی بریم به سمت دومی 1درجه انگار روتاری انکودر ما چرخیده در جهت چرخش عقربه های ساعت.
در خلاف جهت عقربه های ساعت : اون خطوط سبز هم مربوط به تغییر زاویه در خلاف جهت چرخش عقربه های ساعت هستش.
پایه های روتاری انکودر چرخشی : این قطعه 5تا پایه به صورت زیر داره : VCC،GND،S1،S2،KEY
که پایه های VCC و GND کارشون که معلومه.
پایه KEY برا کلید هستش، همون طور که میدونید این قطعه روتاری انکودر علاوه بر روتاری انکودر بودن، مثل یه کلید هم هستش که با فشار دادن اهرمش به سمت پایین کلیدش قطع میشه(کلیدش در حالت عادی مقدار VCC داره و وقتی کلید رو فشار بدید مقدار پایه KEY برابر GND میشه)
پایه هایS1 و S2 هم همون پایه هایی هستن که پالس روشون اعمال میشه و ما مقدار این پایه ها رو میخونیم(البته این پایه ها در شکل بالا با نام های A و B ذکر شده که زیاد چیز مهمی نیست. )
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 |
شماتیک این پروژه آردوینو به صورت زیر هستش :
توجه 1 : در زیر 2-3 تا پروژه قرار میدم که شماتیک همشون همین عکس بالا هستش.
توجه 2 : در دو پروژه زیر از پایه KEY استفاده نکردم چون ربطی به مطلب نداره و یه کلید معمولی هستش که وقتی روش کلیک بشه مقدارش 0 میشه و در حالت عادی مقدار این پایه 1 هستش، اگه خواستید هم میتونید از این پایه استفاده کنید و ربطی به فهمیدن چرخش روتاری انکودر نداره و فقط یه کلید هستش(دو بار گفتم حالا باز بیاید سوال کنید. )
پیشنیاز هایی برای فهم بهتر کدهای چند تا پروژه زیر : برای این که در فهم کدهای این چند تا پروژه به مشکل بر نخورید باس مطالب مربوط به جلسات 1،4،5،6،10 از سری مطالب آموزش آردوینو رو بخونید.
کد های پروژه1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#define S1 2 #define S2 3 int Number = 0; int S1_LastValue = LOW; int n; void setup() { pinMode (S1, INPUT); pinMode (S2, INPUT); Serial.begin (9600); } void loop() { n = digitalRead(S1); if ((S1_LastValue == LOW) && (n == HIGH)) { if (digitalRead(S2) == LOW) Number--; else Number++; Serial.print(String(Number) + "/"); } S1_LastValue = n; } |
کدهای پروژه 2(از وقفه استفاده شده)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#define S1 2 #define S2 3 int Number = 0; void setup() { pinMode(S1, INPUT); digitalWrite(S1, HIGH); // turn on pullup resistor pinMode(S2, INPUT); digitalWrite(S2, HIGH); // turn on pullup resistor attachInterrupt(0, Encoder, RISING); // encoder pin on interrupt 0 - pin 2 Serial.begin (9600); Serial.println("start"); // a personal quirk } void loop(){ } void Encoder() { if (digitalRead(S1) == digitalRead(S2)) Number++; else Number--; Serial.println (Number, DEC); } |
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. انشاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
فعلا دارم رو USB و میکرو LPC کار میکنم، 3 تا موضوع مطرح هستش ( که تو ذهنمه هر3شو برم ) :
1) میکرو در نقش Device ( فعلا محوریت کار من این مورد هستش )
2) میکرو در نقش Host
3) میکرو در نقش OTG
و باز 2 تا موضوع مطرح هستش، برا راه اندازی usb دو تا راه داریم ( که تو ذهنمه هر2شو برم ) :
1) استفاده از میکروکنترلر ( فعلا محوریت کار من این مورد هستش که از LPC1768 استفاده میکنم )
2) استفاده از آیسی های مختص اینکار.
فعلا کارم با دیتاشیت usb تموم شده، دارم کلاس های usb رو مطالعه میکنم، کلاس cdc رو ماستمالی کردیم و یه پروژه ازش منتشر کردیم، الان رو کلاس HID ریز شدم و دارم مطالعه میکنمش و پروژه ازش میزارم تو سایت.
جزئیات داستان رو در لینک زیر میتویند ببینید :
سوالی داشتید در قسمت نظرت مطرح کنید؛ بلد باشم حتما جواب میدم ( اکثر مواقع آنلاین هستم و در کمتر از 1 ساعت جواب میدم )
جالب بود . دوست دارم اردوینو رو یاد بگیرم و تو صنعت ازش استفاده کنم
اینم نظر . بعد نگی بی معرفت بود خوند و نظر نداد
سلام اقا مهدی
امیدورام خوب باشی
میخواستم بدونم آردینو تو صنعت کاربرد داره؟
سلام
تا صنعت رو چی تعریف کنی
خب آردوینو همون avr هستش – Avr هم که هر جا بری نوشته نویز میگیره و البته راه حل هایی هم ارائه دادن، باید بسته به محیط استفاده پروژه، میزان امکانات مورد نیاز، حداکثر هزینه تمام شده پروژه و… بهترین میکرو رو انتخاب کنی – ممکنه یه جا همین آردوینو کافی باشه – ممکنه یه جا آرم هم جواب نده.
سلام وخسته نباشید. یه سوال اینکه در جاهای پر سر و صدا هم میشه از این سیستم آردوینو استفاده کرد؟
سلام
بیشتر بحث نویز مطرح هستش تا آلودگی صوتی
مطلب جالب و به درد بخوری بود.تشکر
عالی بود داداش تو سایتت مطالب اموزنده ای گذاشتی دمت گرم موفق باشی.
سلام مطالبتون خیلی جالبه فقط یه سوال داشتم اونم اینه که این انکدرو میشه به یه چرخ وصل کرد ؟

که با چرخ بجرخه؟
سلام – موتورو به چرخ وصل کنی و به روتاری؟ موتورت باید دو شافته باشه – فک کنم بهش همینو میگن
در این مورد نیازی به انکودر دو شفته نیست چرخ دنده رو با یه ساپورت می شه اتصال داد و اگر هم بخوای می شه یه لاستیک ضد سایش بگیری تا با قعطه اصطحلاک داشته باشه
سلام ببخشید نمیشه این ماژول رو با avr راه اندازیش کنیم؟
سلام-میشه
سلام
ممنون از توضیحات ارزنده ات
اجرت با سید الشهدا
گفتی نظر بده منم دارم میدم


این روتاری انکودر همون روتاری روی ضبط خودرو نیست؟؟
و اینکه اگه برا تنظیم دما تو اردوینو استفاده کنم پایداری داره(یعنی عمرش خوبه؟؟)
و هیچی دیگه ناراحت نشی سوالا چرند و پرنده
ضبط خودرو؟ بعید میدونم تو ضبط خودرو از همچین قطعه ای استفاده کرده باشن – نمیدونم دقیقا.
برا تنظیم دما بخوای از آردوینو استفاده کنی؟ نباید مشکلی رخ بده – ترجیها از بردش استفاده نکن – خودت یه برد برای مدارت بزن.
سلام ممنون از مطالب مفیدتون
من میخواستم یک روتاری اینکودر افزایشی که در واقع به عنوان متر عمل میکنه رو از طریق پورت سریال به کامپیوتر وصل کنم که اندازه ی متر رو نمایش بده
اگر ممکنه راهنمایی کنید ممنون
سلام وقت بخیر
بعضی از شاسی های ربات مسیریاب که توبازارهستن خودشون موتور دارن که بعضی هاشون انکودر دارن بعضی هاشون هم نه
کدهای راه اندازی موتور با انکودر و بدون انکودر در آردوینو باهم متفاوته؟؟
من فقط راه اندازی موتور بدون انکودرشو بلدم
اگر تفاوت داره لطفا راهنماییم کنین
سلام
نمیدونم چه مدل انکودری میگی.
در این مورد نیازی به انکودر دو شفته نیست چرخ دنده رو با یه ساپورت می شه اتصال داد و اگر هم بخوای می شه یه لاستیک ضد سایش بگیری تا با قعطه اصطحلاک داشته باشه
سلام و وقت یخیر
من یه موتور گیربکس انکودر دارم میخوام مثلا 2 دور به راست و 3 دور به چپ بجرخونمش میخوام بدونم چطور باید از روتاری استفاده کنم یا سیم بندیم باید چطور باشه یا اصلا میشه
ممنون از شما