روتاری انکودر یک ماژول مکانیکی است. برای فرمان به شافت یک موتور و یا محاسبه دوران شافت یک موتور میتواند به کار رود. تفاوت اصلی انکودر با ولوم در این است که شافت انکودر محدودیتی برای تعداد چرخش ندارد. بسته به نوع روتاری به ازای هر میزان از زاویه چرخش یک پالس تولید میکند. این پالس توسط مداری دیگر برای کاربرد دیگری اعمال میشود. مثلا تعریف شود که به ازای هر پالس میزان مشخصی از شافت به صورت تغییر زاویهای نمایان شود. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
ماژول روتاری انکودر – Rotary Encoder
ماژول روتاری انکدر Rotary Encoder با استفاده از شافتی که بر روی ماژول قرار دارد، در دو جهت مثبت و منفی به چرخش در میآید. با چرخش شافت ماژول روتاری انکودر Rotary Encoder در دو جهت، فرکانس خروجی به صورت پالس تولید میشود. تعداد دوران شافت ماژول روتاری انکودر بینهایت است. بر روی شافت ماژول روتاری یک سوییچ قرار گرفته است که با فشار میکروسوییچ، حرکت شافت ریست شده و به حالت اولیه باز میگردد و مجددا از دوران ۰ شروع خواهد شد. شافت روتاری انکدر دارای ۳ پایه A,B,C است. در طرف دیگر شافت دو سوییچ قرار دارد که یکی از آن ها به پین A , C و سوییچ دیگری به پین B , C متصل است. با هر حرکت شافت انکودر، سوییچ ها باز و بسته میشوند. در حالت اول اگر هر دو سوییچ بسته باشند، با چرخش شافت در جهت عقربه های ساعت یا خلاف جهت عقربه های ساعت، هر دو سوییچ باز خواهد شد و برای حالت دوم نیز برعکس اتقاف خواهد افتاد. در واقع در حالت کلی خروجی به صورت پالس تولید شده و سوییچ های A , B , C به صورت باز و بسته عمل خواهند کرد. ماژول روتاری انکدر دارای ۵ پایه به ترتیب GND, VCC , SW , DT , CLK میباشد. هنگامی که سوییچها در حالت open یعنی باز باشند، خروجی پالس در بالاترین سطح خود و هنگامی که سوییچها در حالت close یعنی بسته باشند، خروجی پالس در پایین ترین سطح قرار میگیرد. در ادامه به بررسی اتصالات و راه اندازی ماژول روتاری انکودر خواهیم پرداخت.
هدف آموزش ماژول Rotary Encoder
با چرخش شافت ماژول روتاری انکودر در دو جهت چپ و راست، با اتصال یک سرو موتور در خروجی، سرو در زاویه ۱۸۰ درجه تغییر خواهد کرد. برای بررسی دقیق تر وضعیت ماژول روتاری و سرو موتور، در خروجی از یک ماژول LED RGB SMD استفاده میکنیم. با چرخش شافت روتاری انکودر در جهت عقربه های ساعت، سرو موتور ۱۸۰ درجه میچرخد و سپس ماژول ال ای دی LED RGB به رنگ قرمز تغییر رنگ خواهد داد. همچنبن با چرخش شافت در خلاف جهت عقربه های ساعت، مجددا سروو به چرخش در آمده و ماژول ال ای دی LED RGB به رنگ سبز تغییر رنگ خواهد داد. در ادامه به بررسی اتصالات خواهیم پرداخت.
سرو موتور SG90
سرو موتور SG90، ماژولی با ابعاد کوچک و کم وزن با توان خروجی بالایی است. شافت خروجی سرو موتور Servo motor SG90 توانایی چرخش با زاویه ۱۸۰ درجه در هر مسیر ۹۰ درجه را دارند.خروجی سرو موتور ها به صورت پالس بوده و در حالت “۰” با پالس ۱٫۵ میلی ثانیه در حالت وسط ، در “۹۰” با پالس ۲ میلی ثانیه تنها در جهت راست، در “۹۰-” با پالس ۱ میلی ثانیه تنها در حالت چپ خواهد چرخید. ولتاژ کاری سرو موتور Servo motor SG90 بین ۴٫۸ تا ۵ ولت DC است. سرو موتور SG90 دارای سه پایه به ترتیب GND , VCC , Signal میباشد. سیم قهوه ای پایه GND ، سیم قرمز پایه VCC و سیم نارنجی پایه سیگنال (S) میباشد. در ادامه به بررسی اتصالات خواهیم پرداخت.
ماژول ال ای دی LED RGB SMD
ماژول SMD Color دارای یک ال ای دی سه رنگ RGB با چهار پایه جهت کنترل رنگ و تولید رنگهای متفاوت میباشد. ال ای دی RGB از سه رنگ RED,BLUE,GREEN تشکیل شده است که از ترکیب این سه رنگ میتواند بیش از ۱۶ میلیون رنگ را تولید کند. سه رنگ آبی ،قرمز، سبز ۸ بیتی میباشند که دارای مقادیر عدد صحیح ۰ تا ۲۵۵ هستند. به عنوان مثال با ترکیب این سه رنگ ۲۵۶*۲۵۶*۲۵۶ =۱۶۷۷۷۲۱۶ رنگ تولید خواهد شد.
وسایل مورد نیاز:
ماژول روتاری انکودر Rotary Encoder از پکیج ۳۷ سنسور آردوینو
شیلد آردوینو پروتوتایپ Arduino Shield UNO Prototype
اتصالات ماژول روتاری انکودر
- پایه CLK ماژول روتاری انکودر – Rotary Encoder را به پایه ۳ آردوینو اتصال دهید.
- پایه DT ماژول روتاری انکودر – Rotary Encoder را به پایه ۴ آردوینو اتصال دهید.
- پایه SW ماژول روتاری انکودر – Rotary Encoder را به پایه ۸ آردوینو اتصال دهید.
- پایه VCC ماژول روتاری انکودر – Rotary Encoder را به پایه ۵ ولت آردوینو اتصال دهید.
- پایه GND ماژول روتاری انکودر – Rotary Encoder را به پایه GND آردوینو اتصال دهید.
- پایه سیگنال (S) سرو موتور SG90 را به پایه ۱۰ آردوینو اتصال دهید.
- پایه VCC سرو موتور SG90 را به پایه ۵ ولت آردوینو اتصال دهید.
- پایه GND سرو موتور SG90 را به پایه GND آردوینو اتصال دهید.
- پایه RED ماژول ال ای دی RGB را به پایه ۶ آردوینو اتصال دهید.
- پایه GREEN ماژول ال ای دی RGB را به پایه ۵ آردوینو اتصال دهید.
- پایه GND ماژول ال ای دی RGB را به پایه GND آردوینو اتصال دهید.
فراخوانی کتابخانه
کد ماژول روتاری انکدر
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در ابتدا کد را در نرم افزار آردوینو کپی کنید. سپس طبق اتصالات گفته شده در آموزش، اتصالات بین ماژول ها را برقرار کنید و سپس کد را کامپایل کنید. در کد از سریال مانیتور برای نمایش شروع (Start) حرکت سرو و ریست (Reset) سرو استفاده میکنیم. در ابتدا پس از کامپایل سریال مانیتور Start را نمایش میدهد. حال با چرخاندن شافت روتاری در جهت عقربه های ساعت، سرو شروع به چرخش کرده و ماژول ال ای دی LED RGB به رنگ سبز تغییر خواهد کرد. سپس با چرخش شافت در خلاف جهت عقربه های ساعت، سرو در جهت برعکس چرخیده و ماژول ال ای دی RGB به رنگ قرمز تغییر رنگ خواهد داد. با فشردن شافت همانند سوییچ، ریست – Reset شده و به حالت اولیه بازمیگردد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
واقعا جالبه یه آموزش داشتید که با جوی استیک بود و سرو حرکت میکرد ولی این خیلی جذاب تره
تغییر رنگ ال ای دی هم جالبه
سلام
از توجه شما ممنونم.
موفق باشید
سلام
من ارور کتابخونه دارم نمیدونم چیکار کنم ! راهنمایی میکنین؟
سلام
در ابتدا از صفحه محصول Servo SG90 کتابخانه سرو موتور را دانلود و در مسیر arduino / library کپی کنیدو. دقت کنید که حتما از حالت زیپ خارج کنید و سپس مجددا برنامه را کامپایل کنید. نتیجه را اعلام کنید.
مرسی مشکلم حل شد
ممنون برای راهنمایی دقیقتون
بسیار عالی
خواهش میکنم.
با سلام
قصد دارم کارکرد کنتورهای منزل خود را بنوعی از طریق اینترنت و بدون سیم روی لپ تاب یا گوشی دریافت کنم.لطفا راهنمایی کنید.
با تشکر
عباس رسولی
با سلام و تشکر از شما
اول از همه دقت داشته باشید که این کار نیاز به تخصص و تجربه کافی دارد. همچنین پیشنهاد میشود آموزش استفاده از رله Relay در پروژه اینترنت اشیاء IOT را مطالعه بفرمایید. سپس موارد را ازطریق کامنت های همان پست ادامه دهید.
سلام
آموزش ساده و جالبی بود، میشه بفرمایید که از روتاری دیگه چه استفاده هایی میشه کرد؟
سلام
میتوانید به شافت برای شمارش دور موتور و یا ولوم ضبط صوت استفاده کنید.
سلام ممنون از زحماتتون .
آیا میشه توسط خود آردوینو و بدون ماژول روتاری و توسط ماژولی تایمرمانند ، سرو موتور را در زمانی معین به چرخش معین درآورد؟
سلام
بله امکان پذیر است و محدودیتی وجود ندارد.
سلام من یه موتور انکودر رو میخوام تا یه زاویه ای بچرخونم و در خلاف جهت تا یه زاویه دیگه ولی زوایا ثابت باشن میخواستم بدونم چیکار باید انجام بدم. ممنون از راهنمایی شما عزیز
سلام
سخت افزار مورد نیازتان ماژول روتاری انکودر استفاده شده در همین پروژه است.
من از L298 برای راه اندازی موتور گیربکسم استفاده میکنم اونوقت پایه های IN1,IN2رو باید به چه پایه ای از آردوینو وصل کنم ؟ و برنامه فوق رو چجوری تغییر بدم
در این مورد به آموزش راه اندازی موتور DC با درایور موتور L298N و برد آردوینو – بخش اول مراجعه نمایید و سوالات خود را از این طریق بپرسید.
من موتورم با L298 به آردوینو وصله چجوری میتونم از برنامه فوق استفاده کنم؟
سلام
به آموزش راه اندازی موتور DC با درایور موتور L298N و برد آردوینو – بخش اول مراجعه کنید.
می بخشید
من نصبش رو بلدم میخوام از ماژول روتاری در کنترلش استفاده کنم لطفا راهنمایی کنین که چجوری پایه هاشونو وصل کنم
کامل توضیح دهید تا بتوانم راهنمایی کنم.
حرکت موتور ها را با انکودر تغییر دهید؟
ای کاش میشد برای چند لحظه با شما تلفنی صحبت کرد یا به یه نحوی با voice یا هر چی مشکلم رو در خصوص پروژه ام عنوان کنم تا محبت کنین راهنماییم کنین
در حال حاضر پاسخگویی به تمامی سوالات از طریق کامنت امکان پذیر است.
همانند قبل تمامی سوالات خود را بپرسید راهنمایی خواهم کرد.
سلام مجدد
من یه ربات توانبخشی انگشتان دست دارم میسازم که یه موتور داره حرکت پایین و بالای انگشتا رو انجام میده من میخوام به موتورم بگم مثلا سه دوره به سمت راست (یا با زاویه ۴۰ درجه ) بچرخ و مثلا ۲ دور به سمت چپ (با زاویه ۳۰ درجه) برگرده.
سپاس از راهنمایی شما
سلام مجدد
همانطور که میدانید روتاری از ۳ پایه clk, dt, sw تشکیل شده است. باید ابتدا در کد آردوینو هر یک از پایه ها را تعریف کنید ( در کد آردوینو همین پروژه در خط ۳ تا ۵ تعریف شده است).
حال باید برای شافت روتاری و جهت چرخش آن متغیر تعریف کرده و سپس در حلقه loop، توسط ساختار شرطی if و else شرط گذاری کنید. ( به خط های ۱۵ تا ۲۸ دقت کنید).
پیشنهاد میکنم در ابتدا کد این برنامه را خط به خط تحلیل کرده و سپس به پروژه خود تعمیم دهید.
سوالات خود را از همین طریق بپرسید.
خانم مهندس من موتورم سروو نیست موتورم انکودر دار هست چندین بار هم از شما این سوال رو پرسیدم ولی من به نتیجه نرسیدم خواهشا اگر امکان داره بفرمایید نحوه استفاده از این برنامه برای موتور انکودر چگونه است ممنون از شما
همانطور که در تیتر آموزش مشخص شده است، این آموزش برای سرو موتور است و باید منتظر آموزش آن باشید.
همچنین از دیگر کاربرانی که در این زمینه تخصص دارند، تقاضا دارم در بحث شرکت کنند.
سلام خانم مهندس
میخواستم بدونم چطوری میتونم پالس یک دور موتور انکودر رو بشمرم و اینتراپت چی هست؟
سلام
این آموزش مربوط به سنسور روتاری انکودر است نه موتور انکودر
در خصوص وقفه یا همان interrupt به لینک های زیر مراجعه کنید. کامل توضیح داده شده است:
آموزش وقفه interrupt بخش اول
آموزش وقفه آردوینو بخش دوم
تایمر کانتر tccrn، سنسور ژیروسکوپ
سلام خدمت تمام عزیزان و استاد گرامی
پروژه ای دارم که نیازه ۱سرعت گردش۲جهت گردش۳مسافت پیموده شده بدست بیارم
استفاده از روتاری انکودر میتونه نیازم رو مرتفع کنه؟
تشکر
سلام
بله امکان پذیر است و باید معادله ریاضی بنویسید.
سلام خانم بلورچیان
من دنبال مداری میگردم که بتونم تعداد دوری که موتور میزنه رو بشمارم.چنین مداری سراغ دارید ؟ ؟
سلام
در این خصوص مدار آماده ای وجود ندارد و باید خودتان طراحی کنید. برای اینکار میتوانید از ماژول روتاری انکودر Rotary Encoder، ماژول اپتو کانتر Opto Counter و یا ماژول اپتوکانتر با تراشه LM393 Opto Counter H2010 استفاده کنید.
با سلام و خسته نباشید
می خواستم یه وسیله باشه که اندازه زاویه مثلا سلول خورشیدی رو اندازه گیری کنه و به برد اردوینو بفرسته ..
آیا همچین دستگاهی است؟
سپاس
با سلام
ایدهی جالبی دارید. در این خصوص به دو روش میتوان اجرا کرد یکی تشخیص زاویه نور و سپس اعمال آن روی سلولها توسط دو عدد سرو موتور و دیگری هم استفاده از APIهایی که مختصات جغرافیایی برای زاویه خورشید ارایه میدهند. در هر دو حالت نیاز به تخصص بالایی میباشد.
سلام
ببخشید یه سوال دیگه هم داشتم
تو این پروژه شما با دست دارین انکودر رو میچرخونین
آیا میشه بدون دخالت دست هم چرخوند
سپاس
سلام مجدد
اگر منظور شما حرکت شافت انکودر است، خیر امکان پذیر نیست.
ببخشید
میخواستم بدونم پس این سلول های خورشیدی چطور می چرخن؟ بدون دخالت دست؟؟
آیا از سروو موتور استفاده می کنند؟
(ببخشید من اجازه دارم اینجا از این سوالات بپرسم؟) اگه نیست جایی هست که من بتونم سوالاتمو بپرسم؟
و مرسی از جوابگویی سریعتون در خصوص پست قبلی
سلول خورشیدی به این پست نامرتبط است. همانطور که در کامنت قبل گفته شد از ترکیب دو موتور سلول به حرکت در خواهد آمد.
با سلام و احترام
میخواستم بدونم این نوع ماژول انکودر در یک حرکت ۳۶۰ درجه ای چند پالس ایجاد میکند؟
با تشکر
با سلام
در این خصوص به دیتاشیت کالا مراجعه کنید.
با سلام خدمت استاد گرامی من میخوام با انکودر یک cnc بسازم میخوام بدونم مستقیم میتونم سیم های انکودر را به اردوینو متصل کنم برای cnc به سه تا انکودر نیاز دارم اردوینو من هم لئوناردو هستش ممنون میشم راهنمایی کنید منو
با سلام
از توجه شما ممنونم. این مورد توسط بنده تست نشده است. پیشنهاد میشود از نمونه ویدیوهای ساخته شده ایده بگیرید و دیتاشیت کالاها را مطالعه فرمایید.
سلام دیتاشیت این محصول رو کجا میتوم پیدا کنم؟ این انکودر در هر چرخش ۳۶۰ درجه چند پالس تولید میکند؟
با سلام
در این خصوص دیتاشیت کالا در دسترس نیست و به این مورد اشاره نشده است.