آردوینو آردوینو Arduino Uno پروژه های آردوینو پکیج سنسور آردوینو

روتاری انکودر Rotary Encoder از پکیج سنسور آردوینو

نوشته شده توسط علیرضا قربانی

روتاری انکودر (Rotary Encoder) یک سنسور الکترونیکی است که استفاده می‌شود تا حرکت و چرخش شیء را به صورت دیجیتال دریافت کند. این دستگاه برای اندازه‌گیری زاویه چرخش، سرعت چرخش، جهت چرخش و موقعیت یک شفت یا دیسک استفاده می‌شود. در ادامه با مرجع تخصصی آردوینو همراه باشید.

 


روتاری انکودر Rotary Encoder چیست؟


روتاری انکودر یک دستگاه الکترومکانیکی است که برای تبدیل موقعیت زاویه‌ای یا چرخش یک شیء به سیگنال‌های دیجیتال یا آنالوگ استفاده می‌شود. این دستگاه به طور عمومی در برنامه‌های مختلفی استفاده می‌شود که نیاز به حرکت دقیق یا تشخیص موقعیت دارند.طراحی اصلی یک روتاری انکودر شامل یک دیسک یا شافت چرخشی با نقاط تماس به طور یکنواخت و سنسورها یا سوئیچ‌های ثابت است که حرکت نقاط تماس را تشخیص می‌دهند. هنگامی که شافت چرخش می‌کند، نقاط تماس از سنسورها عبور می‌کنند و باعث تولید سیگنال‌های الکتریکی می‌شوند. این سیگنال‌ها سپس تفسیر می‌شوند تا جهت و سرعت چرخش را تعیین کنند.

دو نوع اصلی روتاری انکودر وجود دارد: مطلق و افزاینده.

  • روتاری انکودر مطلق: یک روتاری انکودر مطلق برای هر موقعیت شافت در یک چرخش کامل یک کد یا سیگنال دیجیتال منحصر به فرد فراهم می‌کند. این به این معنی است که حتی اگر برق قطع شود، انکودر می‌تواند اطلاعات موقعیت خود را حفظ کند. انکودرهای مطلق در برنامه‌هایی استفاده می‌شوند که بازخورد موقعیت دقیق اهمیت دارد، مانند رباتیک، اتوماسیون صنعتی و دستگاه‌های CNC.
  • روتاری انکودر افزاینده: یک روتاری انکودر افزاینده مجموعه‌ای از سیگنال‌های مربعی به عنوان شافت چرخشی تولید می‌کند. این پالس‌ها تغییرات نسبی یا تغییرات موقعیت را نشان می‌دهند، اما اطلاعات موقعیت مطلق را فراهم نمی‌کنند. انکودرهای افزاینده به طور معمول در برنامه‌هایی استفاده می‌شوند که نیاز به اندازه‌گیری حرکت نسبی یا سرعت دارند، مانند کنترل موتور، رباتیک

روتاری انکودرها می‌توانند دارای وضوح‌های مختلفی باشند که تعداد موقعیت‌ها یا پالس‌ها در هر چرخش را تعیین می‌کند. انکودرهای با وضوح بالاتر دقت اندازه‌گیری زاویه و کنترل موقعیت دقیق‌تر را فراهم می‌کنند. به طور کلی، روتاری انکودرها دستگاه‌های چندمنظوره‌ای هستند که در صنایع مختلف، از جمله اتوماسیون، رباتیک، تولید، تجهیزات بازی، تجهیزات صوتی و غیره مورد استفاده قرار می‌گیرند. روتاری انکودر (یا انکودر دوار) یک سنسور رمز گذار چرخشی دوار است که وظیفه‌‌‌ی آن مشخص کردن  مقدار چرخش شفت و جهت چرخش آن می‌باشد.در اتوماسیون صنعتی از انکودرهای دوار به عنوان سنسور زاویه، موقعیت، سرعت و شتاب استفاده می­ شود. با استفاده از ابزارهایی چون چرخ دنده ها و تسمه نقاله،  توسط این انکودرها حرکات خطی را نیز می­ توان کنترل کرد. انکودرهای دوار عموماً چرخش مکانیکی را به سیگنالی الکتریکی تبدیل می ­کنند که می­ توان آن را توسط شمارنده­ ها، تاکومترها و کنترل کننده­ های دیجیتالی پردازش نمود.

 

 

 


عملکرد ماژول روتاری انکودر


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

  • حالت خروجی مطلق (Absolute Encoder):
    در این حالت، هر حالت خاص از انکودر با یک کد یا شماره یکتا مرتبط است. به عبارت دیگر، می‌توانید به طور دقیق موقعیت دقیق و زاویه چرخش را از طریق خروجی ماژول مطلع شوید. هنگامی که انکودر روشن می‌شود، مقدار خروجی مطلق از یک شماره خاص شروع می‌شود و با چرخش انکودر تغییر می‌کند. این نوع انکودرها برای کاربردهایی که نیاز به دقت بالا در اندازه‌گیری مکانیکی دارند، مناسب هستند.
  • حالت خروجی نسبی (Incremental Encoder):
    در این حالت، انکودر تغییرات روتاسیون را به شکل پالس‌های الکتریکی کوچک اعمال می‌کند. تعداد پالس‌ها در هر واحد زاویه چرخش به شما اطلاع می‌دهد که به چه مقداری چرخش کرده است. با شمارش این پالس‌ها، می‌توانید موقعیت نسبی را تعیین کنید. این نوع انکودرها برای کنترل حرکتی مانند سیستم‌های موتورپیچ، روبات‌ها و دستگاه‌های CNC استفاده می‌شوند.

به طور کلی، ماژول روتاری انکودر به عنوان یک حسگر مکانیکی یا پالس‌های الکتریکی، تغییرات چرخش را به صورت الکتریکی یا دیجیتالی تبدیل می‌کند. این پالس‌ها می‌توانند با سرعت بالا و با دقت بالا ارسال شوند. اصولاً، ماژول روتاری انکودر شامل دو بخش اصلی است:

  • دیسک: دیسک فیزیکی یا اپتیکی که به آنچه که در دستگاه استفاده می‌شود، متصل می‌شود. وقتی دیسک چرخش می‌کند، الگوهای خاصی روی دیسک وجود دارد که توسط سنسورهای داخلی خوانده می‌شود. این الگوها می‌توانند از روش‌های مختلفی مانند امواج لیزر، فوتوکد، مغناطیس و غیره تشکیل شوند.
  • سنسور: سنسورها نوعی دستگاه هستند که حرکت دیسک را تشخیص می‌دهند و آن را به سیگنال الکتریکی تبدیل می‌کنند. سنسورهای اپتیکی معمولاً از نوری مانند لیزر یا LED استفاده می‌کنند تا الگوهای روی دیسک را خوانده و به سیگنال الکتریکی تبدیل کنند. سنسورهای مغناطیسی از میدان مغناطیسی تولید شده توسط دیسک استفاده می‌کنند و با تغییرات آن را به سیگنال الکتریکی تبدیل می‌کنند.

وقتی دیسک روتاسیون می‌کند، سیگنال‌های الکتریکی از سنسورها تولید می‌شوند و به دستگاه کنترلی یا سیستم متصل می‌شوند. سیستم می‌تواند از این سیگنال‌ها برای تعیین موقعیت، سرعت، جهت و یا حرکت‌های دیگری استفاده کند. با توجه به نوع انکودر و تنظیمات آن، سیگنال‌های خروجی ماژول روتاری انکودر می‌توانند به صورت آنالوگ یا دیجیتال باشند. در حالت آنالوگ، سیگنال خروجی یک ولتاژ یا جریان متناسب با موقعیت چرخش انکودر است. این ولتاژ یا جریان می‌تواند به عنوان ورودی برای سیستم‌هایی مانند مبدل آنالوگ به دیجیتال (ADC) استفاده شود.در حالت دیجیتال، سیگنال خروجی به صورت سیگنال‌های دیجیتال پالسی است که تعداد آنها وابسته به تنظیمات و دقت انکودر است. این پالس‌ها معمولاً به صورت سیگنال‌های منطقی (مثل ۰ و ۱) با دوره‌های دقیق تولید می‌شوند. با شمارش این پالس‌ها و استفاده از روش‌های پردازش سیگنال، می‌توان موقعیت و چرخش را تعیین کرد.برخی از ماژول‌های روتاری انکودر قابلیت تغییر حالت خروجی را دارند، به این معنی که می‌توانید بین حالت خروجی مطلق و نسبی تغییر کنید، بسته به نیاز و کاربرد خاص خود.از ماژول روتاری انکودر در بسیاری از صنایع و کاربردها استفاده می‌شود، از جمله رباتیک، ماشین‌آلات صنعتی، دستگاه‌های CNC، رایانه‌ها، پرینترها، دستگاه‌های اندازه‌گیری و کنترلی، سیستم‌های ناوبری و غیره.

 


انکودر افزایشی (Incremental Encoder)


انکودر افزایشی تغییرات حرکت را به صورت پالس‌های الکتریکی تولید می‌کند. این پالس‌ها با سرعت و دقت بالا تولید می‌شوند و تغییرات نسبی را نشان می‌دهند. با شمارش پالس‌های تولید شده، می‌توان موقعیت نسبی و چرخش را تعیین کرد. برای مثال، یک انکودر افزایشی می‌تواند به هر چرخش یک پالس تولید کند، و با شمارش تعداد پالس‌ها می‌توان موقعیت را محاسبه کرد. انکودرهای افزایشی از سنسورهای اپتیکال یا مغناطیسی برای تشخیص حرکت استفاده می‌کنند.

انکودر افزایشی (Incremental Encoder) با تولید پالس‌های الکتریکی تغییرات حرکت را تشخیص می‌دهد. عملکرد این انکودرها به این شکل است:

  • دیسک: انکودر افزایشی شامل یک دیسک فیزیکی یا اپتیکال است که به آنچه که در دستگاه استفاده می‌شود، متصل می‌شود. روی دیسک الگوهای خاصی وجود دارد که به صورت فوتوگرافیک تهیه می‌شوند. این الگوها شامل سکتورهای تاریک و روشن هستند که به عنوان خطوط شمارش استفاده می‌شوند.
  • سنسور فوتوکد: سنسورهای فوتوکد در انکودر افزایشی استفاده می‌شوند تا الگوهای روی دیسک را تشخیص دهند. این سنسورها شامل یک منبع نوری مانند LED و یک فتودیود است. منبع نوری نوری را روی دیسک تابانده و فتودیود تغییرات نوری را دریافت می‌کند. با عبور سکتورهای تاریک و روشن از جلوی سنسور، الگوهای شمارش تولید می‌شوند.
  • تبدیل به سیگنال الکتریکی: سیگنال‌های نوری دریافت شده توسط فتودیود به سیگنال الکتریکی تبدیل می‌شوند. این سیگنال‌ها به صورت پالس‌های الکتریکی با سرعت بالا تولید می‌شوند. هر پالس الکتریکی به یک چرخش کوچک از دیسک اشاره می‌کند.
  • شمارش پالس‌ها: سیستم کنترلی یا دستگاهی که انکودر را استفاده می‌کند، با شمارش پالس‌های تولید شده می‌تواند موقعیت یا چرخش را تعیین کند. با توجه به دقت و تنظیمات انکودر، تعداد پالس‌ها که توسط انکودر تولید می‌شوند، به صورت نسبی است و وابسته به ساختار و تنظیمات انکودر می‌باشد.

 

برای مثال، ممکن است هر چرخش کامل انکودر ۱۰۰ پالس الکتریکی تولید کند.برای استفاده از انکودر افزایشی و تعیین موقعیت یا چرخش، سیستم کنترلی باید پالس‌های الکتریکی را شمارش کند. با شمارش پالس‌ها و استفاده از الگوریتم‌ها و روش‌های پردازش سیگنال، می‌توان موقعیت نسبی را محاسبه کرد.برای دقت بیشتر، انکودرهای افزایشی دارای دو کانال خروجی هستند که به عنوان A و B شناخته می‌شوند. این دو کانال به صورت فازی یکدیگر قرار دارند، به این معنی که هنگامی که یک پالس در کانال A تولید می‌شود، پالس متناظر در کانال B نیز تولید می‌شود. این کانال‌ها برای تعیین جهت چرخش نیز استفاده می‌شوند. با ترکیب اطلاعات از کانال‌های A و B می‌توان جهت چرخش را تشخیص داد.انکودرهای افزایشی از انکودرهای مبتنی بر سنسورهای اپتیکال یا مغناطیسی استفاده می‌کنند. سنسورهای اپتیکال شامل فوتودیودها و دیسک‌های فوتوگرافیک هستند که الگوهای تاریک و روشن را تشخیص می‌دهند. سنسورهای مغناطیسی از قطبهای مغناطیسی روی دیسک استفاده می‌کنند و تغییرات میدان مغناطیسی را تشخیص می‌دهند.

در کل، انکودر افزایشی با استفاده از تولید پالس‌های الکتریکی توسط سنسورها، توانایی اندازه‌گیری تغییرات حرکت را فراهم می‌کند. با شمارش پالس‌های تولید شده و استفاده از روش‌های پردازش سیگنال، می‌توان موقعیت نسبی، سرعت و جهت حرکت را تعیین کرد. برای مثال، با شمارش تعداد پالس‌هایی که توسط انکودر افزایشی تولید می‌شود و در نرم‌افزار یا سیستم کنترلی محاسبه می‌شوند، می‌توان موقعیت واقعی شیء را تخمین زد.از انکودرهای افزایشی می‌توان در بسیاری از برنامه‌های کاربردی استفاده کرد. برای مثال، در رباتیک، انکودرها به عنوان حسگرهای حرکت و موقعیت استفاده می‌شوند تا ربات بتواند موقعیت خود را در فضا تعیین کند و حرکات دقیق را انجام دهد. همچنین، در ماشین‌آلات صنعتی، انکودرها به منظور کنترل موقعیت و سرعت موتورها و قطعات متحرک استفاده می‌شوند.با استفاده از انکودرهای افزایشی، می‌توان اطلاعات دقیق درباره حرکت و موقعیت شیء را به سیستم‌های کنترلی ارائه داد و کنترل دقیقتری را امکان‌پذیر ساخت. البته، برای دقت بیشتر و دستیابی به موقعیت مطلق، ممکن است نیاز به استفاده از انکودرهای مطلق باشد که به هر موقعیت خاص یک کد یکتا اختصاص می‌دهند.

 


انکودر مطلق و نحوه ی عملکرد


انکودر مطلق (Absolute Encoder) نوعی از انکودر است که به هر موقعیت خاص یک کد یکتا اختصاص می‌دهد. این نوع از انکودرها توانایی اندازه‌گیری موقعیت مطلق و دقیق را دارند، به عنوان مثال زاویه در یک محور چرخشی یا موقعیت در یک محور خطی.عملکرد انکودر مطلق به این صورت است:

  • دیسک: انکودر مطلق شامل یک دیسک فیزیکی یا اپتیکال است که الگوهای مخصوصی بر روی آن وجود دارد. این الگوها می‌توانند به صورت فوتوگرافیک یا مغناطیسی باشند. الگوها به صورت کدگذاری شده بر روی دیسک قرار دارند و هر الگو با یک موقعیت خاص در تعامل است.
  • سنسور: برای خواندن الگوهای روی دیسک، سنسورهای مخصوصی استفاده می‌شود. بسته به نوع انکودر، سنسورها ممکن است از نوع اپتیکال یا مغناطیسی باشند. سنسورها الگوها را تشخیص می‌دهند و سیگنال‌های الکتریکی معادلی را تولید می‌کنند.
  • کدگذاری: سیگنال‌های الکتریکی تولید شده توسط سنسورها به کدگذاری می‌پردازند. در انکودرهای مطلق، کدهای یکتا به هر موقعیت اختصاص داده می‌شود. این کدها می‌توانند به صورت باینری (دودویی) یا به شکل کد‌هایی مانند کد خطی (Gray code) باشند.
  • تفسیر کد: سیستم کنترلی یا دستگاهی که انکودر مطلق را استفاده می‌کند، با تفسیر کدهای یکتا می‌تواند موقعیت مطلق را تشخیص دهد. برای تفسیر کدهای یکتا و تعیین موقعیت مطلق، سیستم کنترلی باید دسترسی به جدول تبدیل کد داشته باشد. این جدول نشان دهنده تطابق بین کدهای خوانده شده از انکودر و موقعیت مطلق است. با مطابقت کد‌های خوانده شده با این جدول، سیستم می‌تواند موقعیت مطلق را به دقت بالا تعیین کند.

به عنوان مثال، فرض کنید انکودر مطلق شامل ۱۲ بیت کدگذاری است که یک کد یکتا به هر موقعیت اختصاص می‌دهد. این ۱۲ بیت می‌توانند به صورت باینری یا به شکل کد خطی (Gray code) باشند. سیستم کنترلی باید جدول تبدیل را داشته باشد که مقادیر کدهای ۱۲ بیتی را با موقعیت مطلق متناظر تطابق دهد. بنابراین، با خواندن کد ۱۲ بیتی توسط سنسورها و مطابقت آن با جدول تبدیل، سیستم می‌تواند موقعیت مطلق را تعیین کند.

انکودرهای مطلق به دلیل تخصیص کدهای یکتا به هر موقعیت، قابلیت بازیابی موقعیت در صورت قطع برق را نیز دارند. زمانی که برق قطع شود و سپس مجدداً روشن شود، سیستم با خواندن کد یکتا از انکودر می‌تواند موقعیت را به درستی بازیابی کند، بدون نیاز به صفرسازی مجدد یا رفع تأخیر.

انکودرهای مطلق به عنوان یک ابزار بسیار دقیق برای اندازه‌گیری موقعیت در بسیاری از صنایع و برنامه‌های کاربردی استفاده می‌شوند، از جمله رباتیک، ماشین‌آلات صنعتی، سیستم‌های کنترلی و خطوط تولید، صنایع هوافضا، تجهیزات پزشکی و بسیاری از سیستم‌های کنترل صنعتی دیگر.مزیت اصلی انکودرهای مطلق نسبت به انکودرهای افزایشی، دقت بالاتر و عدم نیاز به صفرسازی مجدد در هنگام روشن شدن مجدد برق است. همچنین، با توجه به تخصیص کدهای یکتا به هر موقعیت، انکودرهای مطلق مقاومت بیشتری در برابر خطاهای خارجی مانند لرزش‌ها، تغییرات دما و نویز دارند.با این حال، هزینه انکودرهای مطلق معمولاً بیشتر است و نیاز به پردازش پیچیده‌تری برای تفسیر کدها و تبدیل آنها به موقعیت مطلق دارند. همچنین، انکودرهای مطلق معمولاً به دلیل ساختار پیچیده تری نسبت به انکودرهای افزایشی، اندازه کوچکتری را به خود اختصاص می‌دهند.به طور کلی، انکودرهای مطلق و انکودرهای افزایشی هر کدام مزایا و محدودیت‌های خود را دارند و استفاده از هر یک بستگی به نیازها و مشخصات کاربری خاص هر برنامه دارد.

 

 


ساختار انکودر‌های دوار


انکودر دورانی (Rotary Encoder) نوعی از انکودر است که استفاده می‌شود تا حرکت یا دوران شیء را اندازه‌گیری کند. این انکودرها عموماً بر روی محورهای چرخشی نصب می‌شوند و تغییرات زاویه را تشخیص می‌دهند.عملکرد انکودر دورانی به این صورت است:

  • دیسک: انکودر دورانی شامل یک دیسک فیزیکی یا اپتیکال است که الگوهای مخصوصی بر روی آن وجود دارد. الگوها می‌توانند به صورت فوتوگرافیک یا مغناطیسی باشند. الگوها به صورت کدگذاری شده بر روی دیسک قرار دارند و هر الگو با یک زاویه خاص در تعامل است.
  • سنسور: برای خواندن الگوهای روی دیسک، سنسورهای مخصوصی استفاده می‌شود. سنسورها می‌توانند اپتیکال یا مغناطیسی باشند. سنسورها الگوها را تشخیص می‌دهند و سیگنال‌های الکتریکی معادلی را تولید می‌کنند.
  • کدگذاری: سیگنال‌های الکتریکی تولید شده توسط سنسورها به کدگذاری می‌پردازند. در انکودرهای دورانی، کدها معمولاً به صورت باینری (دودویی) یا به شکل کد خطی (Gray code) است. این کدها نمایانگر تغییرات زاویه در حرکت یا دوران شیء هستند.
  • تفسیر کد: سیستم کنترلی یا دستگاهی که انکودر دورانی را استفاده می‌کند، با تفسیر کدهای خوانده شده می‌تواند زاویه یا دوران مربوطه را تشخیص دهد. با محاسبه تغییرات کد‌ها، سیستم می‌تواند زاویه یا دوران فعلی را محاسبه کند. با توجه به مقدار کدهای خوانده شده و قرائت آنها، می‌توان تغییر زاویه را به دقت بالا تعیین کرد.

برای مثال، فرض کنید انکودر دورانی دارای ۱۲ بیت کدگذاری باشد، که نشان دهنده زاویه در یک محدوده ۳۶۰ درجه است. در این صورت، هر بیت از کدها به یک نصف درجه معادل می‌شود. با خواندن کد ۱۲ بیتی و تفسیر آن با استفاده از محاسبات مناسب، سیستم می‌تواند زاویه یا دوران فعلی را با دقت بالا تعیین کند.انکودرهای دورانی بسیار کارآمد و دقیق هستند و در بسیاری از صنایع و برنامه‌های کاربردی استفاده می‌شوند. این شامل رباتیک، ماشین‌آلات صنعتی، سیستم‌های کنترل خودرو، سیستم‌های ناوبری، تجهیزات پزشکی و بسیاری دیگر می‌شود. همچنین، انکودرهای دورانی قابلیت اندازه‌گیری سرعت و شتاب را نیز دارند، از طریق مشتقه‌گیری کدها در زمان.

همچنین، انکودرهای دورانی می‌توانند دارای دو نوع اصلی باشند: انکودرهای دورانی افزاینده (Incremental Rotary Encoders) و انکودرهای دورانی مطلق (Absolute Rotary Encoders).

  • انکودرهای دورانی افزاینده (Incremental Rotary Encoders) تغییرات زاویه را در قالب پالس‌های الکتریکی بیان می‌کنند. آنها دارای دو کانال خروجی هستند: یک کانال اصلی (A) و یک کانال کمکی (B) که فازهای متفاوتی دارند. با استفاده از این دو کانال، می‌توان جهت چرخش را تشخیص داد. علاوه بر این، این انکودرها یک کانال اسمی (Z) نیز دارند که یک پالس در یک دور کامل دیسک تولید می‌کند و به عنوان نقطه ارجاع استفاده می‌شود.
  • انکودرهای دورانی مطلق (Absolute Rotary Encoders) دارای یک مجموعه کدگذاری شده از پالس‌ها هستند که هر کد به صورت یکتا با یک زاویه مطلق متناظر است. هنگامی که انکودر روشن می‌شود، کدگذاری خوانده شده را می‌توان به طور مستقیم به یک زاویه مطلق ترجمه کرد. بنابراین، این انکودرها قابلیت بازیابی دقیق موقعیت مطلق را دارند، حتی در صورت قطع برق و روشن شدن مجدد.

انکودرهای دورانی، با دقت بالا و قابلیت اندازه‌گیری دقیق زاویه و دوران، در بسیاری از برنامه‌های کنترل و اندازه‌گیری استفاده می‌شوند. علاوه بر این، انکودرهای دورانی می‌توانند با انواع رابط‌های ارتباطی مانند رابط سریال (Serial Interface) یا رابط موازی (Parallel Interface) به سیستم کنترل متصل شوند و داده‌های زاویه‌ای را به دستگاه کنترلی یا سیستم کامپیوتری ارسال کنند. این انکودرها می‌توانند اطلاعاتی مانند زاویه، دوران، سرعت و موقعیت را به سیستم منتقل کنند.

انکودرهای دورانی با توجه به نوع کدگذاری و روش ارتباط، به دو دسته اصلی تقسیم می‌شوند:

  • انکودرهای دورانی موازی (Parallel Rotary Encoders): این نوع انکودرها از روش موازی برای انتقال اطلاعات استفاده می‌کنند. زاویه خوانده شده توسط سنسورها به صورت کدهای باینری موازی خروجی داده می‌شود. بسته به دقت مورد نیاز، این انکودرها می‌توانند به صورت یک بیت، چند بیت یا حتی چندین بایت کدها را خروجی دهند.
  • انکودرهای دورانی سریال (Serial Rotary Encoders): در این نوع انکودرها، اطلاعات زاویه به صورت سریال ارسال می‌شود. برای این منظور، از روش‌های ارتباطی مانند رابط سریال (Serial Interface) استفاده می‌شود. اطلاعات زاویه به صورت بیت به بیت از طریق یک رابط سریال ارسال می‌شود و سیستم کنترلی می‌تواند این اطلاعات را تحلیل کرده و زاویه را مشخص کند.

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

  • رباتیک: انکودرهای دورانی بر روی محورهای مفصلی ربات‌ها نصب می‌شوند تا حرکت و پوزیشن مفصل‌ها را اندازه‌گیری کنند. این اطلاعات به سیستم کنترلی ربات کمک می‌کنند تا حرکت دقیق را کنترل و ردیابی کند.
  • ماشین‌آلات صنعتی: در ماشین‌آلات صنعتی، انکودرهای دورانی بر روی محورها و اجزای متحرک قرار می‌گیرند تا حرکت و موقعیت آنها را نظارت کنند. این اطلاعات می‌توانند به سیستم کنترلی کمک کنند تا تغییرات موقعیت را کنترل کند و از دقت و تنظیمات ماشین‌آلات بهینه استفاده کند.
  • صنایع خودروسازی: در خودروها، انکودرهای دورانی می‌توانند بر روی محورهای چرخ، دسته‌های دنده و سیستم‌های جیر برنامه‌ریزی شوند. این انکودرها موقعیت چرخ، سرعت، وضعیت دنده و سایر پارامترهای مرتبط را نظارت می‌کنند و به سیستم‌های کنترل خودرو اطلاعات لازم را می‌دهند.
  • سیستم‌های ناوبری: در سیستم‌های ناوبری مانند ژیروسکوپ‌ها، کامپاس‌ها و سیستم‌های تعیین موقعیت ماهواره‌ای، انکودرهای دورانی برای اندازه‌گیری و ردیابی جهت و زاویه استفاده می‌شوند.

 

شماتیک ماژول انکودر دوار

شماتیک این ماژول در شکل زیر نمایش داده شده است. مقاومت R2 و R3 به صورت پول آپ به پین‌‌های DT و CLK متصل شده است.

Keyes-KY-040-Rotary-Encoder-Module-Schematic

شماتیک ماژول انکودر دوار

مدرای برای درک فهم بهتر طریقه‌ی عمل کرد ماژول انکودر دوار

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

انکودر دوار - rotary encoder

انکودر دوار (روتاری انکودر ) – rotary encoder

به صورت خیلی خیلی آهسته شافت انکودر را در جهت ساعت گرد و پاد ساعت گرد بچرخانید و توجه کنید که کدام LED وضعیتش زود تر تغییر می‌کند.

اتصال روتاری انکودر ( انکودر دوار ) به آردوینو – rotary encoder

اتصال اکودر دورانی به آردوینو - rotary encoder


برنامه نویسی انکودر


برنامه نویسی این ماژول کار زیاد مشکلی نیست فقط کافیست تشخیص دهیم که ابتدا کدام یک از سوییچ ها تغییر وضعیت می‌دهد و سپس جهت آن را مشخص کنیم.

int pinA = 3;  // Connected to CLK 
int pinB = 4;  // Connected to DT 
int pinsW = 5;
int encoderPosCount = 0;
int pinALast;
int aVal;
boolean bCW;

void setup() {
  pinMode(pinA, INPUT);
  pinMode(pinB, INPUT);
  pinMode(pinsW, INPUT_PULLUP);
  /* Read Pin A
  Whatever state it's in will reflect the last position
  */
  pinALast = digitalRead(pinA);
  Serial.begin(9600);
}

void loop() {
  aVal = digitalRead(pinA);
  if (aVal != pinALast) { // به این معنی است که شافت در حال چرخش است
              // اگر شافت بچرخد ، ما باید جهت چرخش را مشخیص کنیم
              /* که ایم کار را به وسیله ی خواندن پین 
              B
              انجام می دهیم
              */
    if (digitalRead(pinB) != aVal) {  /*
                      اگر پین
                      A 
                      ابتدا تغییر وضعیت دهد
                      و به این معنی است که چرخش در جهت ساعت گرد می باشد
                      */ 
                    
      encoderPosCount++;
      bCW = true;
    }
    else {/*
        ولی اگر ابتدا
      B
      تغییر وضعیت دهد به این معنی است که چرخش پاد ساعت گرد می باشد

        */
      bCW = false;
      encoderPosCount--;
    }
    Serial.print("Rotated: ");
    if (bCW) {
      Serial.println("clockwise");
    }
    else {
      Serial.println("counterclockwise");
    }
    Serial.print("Encoder Position: ");
    Serial.println(encoderPosCount);

  }
  pinALast = aVal;
  
  if (digitalRead(pinsW)==LOW) // خواندن وضعیت کلید روی انکودر
  {
    Serial.println("sw pressed");
    delay(100);
  }

}

این کد برای خواندن و تحلیل سیگنال‌های یک انکودر افزاینده (Incremental Encoder) استفاده می‌شود. انکودر با استفاده از دو پین ورودی (pinA و pinB) به میکروکنترلر متصل شده است. همچنین یک پین دیگر (pinsW) نیز برای خواندن وضعیت کلید روی انکودر استفاده می‌شود.در قسمت setup()، پین‌ها به عنوان ورودی تنظیم می‌شوند و وضعیت اولیه pinALast خوانده می‌شود. همچنین ارتباط سریال برای ارسال خروجی‌ها از طریق Serial.begin(9600) تعریف شده است.در قسمت loop()، ابتدا وضعیت pinA خوانده می‌شود و با مقدار قبلی آن (pinALast) مقایسه می‌شود تا تشخیص داده شود که آیا شافت انکودر در حال چرخش است یا خیر. سپس وضعیت pinB بررسی می‌شود تا جهت چرخش (ساعت‌گرد یا پادساعت‌گرد) تعیین شود. بر اساس جهت چرخش، مقدار encoderPosCount به ازای هر چرخش افزایش یا کاهش می‌یابد و در خروجی سریال چاپ می‌شود. همچنین وضعیت کلید روی انکودر نیز بررسی می‌شود و در صورت فشار داده شدن، پیامی در خروجی سریال نمایش داده می‌شود.در انتهای حلقه loop()، وضعیت کنونی pinA به عنوان وضعیت قبلی (pinALast) ذخیره می‌شود تا در بررسی‌های بعدی استفاده شود.از این کد می‌توان برای خواندن جهت چرخش و موقعیت انکودر در یک سیستم کنترل استفاده کرد.

 


جمع بندی


در این مقاله، به بررسی روتاری انکودر پرداختیم. انکودرها ابزارهایی هستند که برای اندازه‌گیری و ردیابی حرکت و موقعیت دورانی استفاده می‌شوند. انکودرها به دو نوع افزایشی و مطلق تقسیم می‌شوند.انکودرهای افزایشی، تغییرات رخ داده در حرکت دورانی را در قالب پالس‌های الکتریکی ارائه می‌دهند. این پالس‌ها به صورت افزاینده یا کاهنده و در صورت چرخش در جهت ساعتگرد یا پادساعتگرد تولید می‌شوند. با شمارش و تحلیل این پالس‌ها، می‌توان موقعیت و جهت چرخش را تعیین کرد.انکودرهای مطلق، به جای تولید پالس‌های افزایشی، مستقیماً موقعیت دورانی را به صورت کد شماره‌ای یا آنالوگ ارائه می‌دهند. این نوع انکودرها با استفاده از سیگنال‌های دیجیتال یا آنالوگ، موقعیت دقیق را نمایش می‌دهند.روتاری انکودرها به دلیل دقت و قابلیت اندازه‌گیری بالا، سرعت بالا، و کارکرد قابل اعتماد، در بسیاری از صنایع و برنامه‌ها استفاده می‌شوند. این انکودرها در رباتیک، ماشین‌آلات صنعتی، صنایع خودروسازی، سیستم‌های ناوبری و تجهیزات پزشکی مورد استفاده قرار می‌گیرند.

 

درباره نویسنده

علیرضا قربانی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۶ دیدگاه