# رمزگذار چرخشی
رمزگذار چرخشی یک حسگر است که به آن شافت اینکودر (به انگلیسی: Shaft Encoder) نیز می‌گویند. رمزگذار چرخشی یک نوع دستگاه الکترومکانیکی است که وظیفه آن تبدیل موقعیت زاویه‌ای یک شفت (به انگلیسی: Shaft) به یک کد دیجیتال یا آنالوگ می‌باشد. به عبارت دیگر رمزگذار چرخشی یک مبدل (به انگلیسی: Transducer) زاویه‌ای است.
از جمله کاربردهای آن می‌توان به کاربرد در کنترل صنعتی، روباتیک و برآورده ساختن بعضی از هدف‌های لنزهای عکاسی و همچنین در دستگاه‌های ورودی رایانه نام برد.
به‌طور کلی رمزگذار چرخشی دارای دو فرم کلی مطلق و افزایشی می‌باشد که در ادامه خلاصه‌ای از آن‌ها توضیح داده می‌شود.

## ساختمان
این واحد به ازای هر فاصله زاویه‌ای از شفت یک کد دیجیتالی تولید می‌کند، همچنین خاطر نشان می‌شود که رمزگذار چرخشی مطلق به دو فرم کلی مکانیکی و نوری تقسیم می‌شود

## رمزگذار چرخشی مطلق مکانیکی
ساختمان ان به این نحو می‌باشد که یک دیسک فلزی که شامل تعدادی حلقه مجتمع بوده که خود ان به یک صفحه عایق ثابت شده‌اند دارای. یک ردیف از تماس‌های لغزنده (sliding contacts) که به جسم ثابت وصل شده‌اند است که در نتیجه هر تماس می‌تواند جداگانه (در فاصله‌های متفاوت از شفت حرکت کند. هم‌زمان که دیسک به همراه شفت می‌چرخد بعضی از تماس‌ها توسط فلز لمس شده و بعضی در فضاهای خالی که از برش فلز به وجود امده‌اند می‌افتند باید ذکر شود که صفحه فلزی به جریان الکتریکی وصل بوده همچنین هر یک از تماس‌ها جداگانه به یک سنسور الکتریکی متصل هستند می‌توان دریافت که با در نظر گرفتن اینکه تماس‌ها با وصل بودن(code=۱)و قطع بودن (code=۰)الگوی مناسب دودویی برای تبدیل موقعیت زاویه‌ای یک شفت به یک کد دیجیتال ایجاد می‌کند.

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

## روش رمزگذاری دودویی استاندارد
| Sector | Contact ۱ | Contact ۲ | Contact ۳ | Angle        |
| ------ | --------- | --------- | --------- | ------------ |
| ۱      | off       | off       | off       | ۰° to ۴۵°    |
| ۲      | off       | off       | on        | ۴۵° to ۹۰°   |
| ۳      | off       | on        | off       | ۹۰° to ۱۳۵°  |
| ۴      | off       | on        | on        | ۱۳۵° to ۱۸۰° |
| ۵      | on        | off       | off       | ۱۸۰° to ۲۲۵° |
| ۶      | on        | off       | on        | ۲۲۵° to ۲۷۰° |
| ۷      | on        | on        | off       | ۲۷۰° to ۳۱۵° |
| ۸      | on        | on        | on        | ۳۱۵° to ۳۶۰° |

در جدول بالا مشاهده می‌شود به ازای سه تماس موجود ۳^۲ حالت مجزا برای موقعیت زاویه‌ای شفت وجود دارد (در حالت کلی n contact ,۲^n position)با چرخش دیسک contactها کد باینری برای مشخص کردن موقعیت ایجاد می‌کند با این وجود اگر دیسک بین دو همسایه جدول بایستد یا contactها به خوبی طراز نگردد امکان مشخص کردن زاویه شفت وجود ندارد
برای مثال فرض کنید که شفت از بخش ۴ به بخش ۵ تغییر مکان ذاده بنابراین الگوی مورد نظر از off-on-onبه on-off-off تغییر می‌کند در صورتی که در عمل این اتفاق نمی‌افتد. دقت شود که تماس‌ها به خوبی هم‌ردیف نمی‌شود از این‌رو هر کدام در زمان متفاوتی سویچ می‌شوند برای مثال یک حالت به این صورت می‌باشد:
off-on-on (starting position)
on-on-on (first, contact 1 switches on)
on-on-off (next, contact 3 switches off)
on-off-off (finally, contact 2 switches off)
اگر تغییر بخش متناظر را مشاهده کنیم چنین به نظر می‌آید که شفت ابتدا از ۴ به ۸ رفته سپس به ۷ و بعد ان به ۵ برمیگردد این الگو در عمل نامطلوب بوده و باعث خطا در سیستم می‌گردد برای مثال اگر رمزگذار در بازوی ربات استفاده شود کنترلر بازو را در مکان اشتباه تشخیص داده و سعی می‌کند با چرخاندن ان را تنظیم کند که می‌تواند منجر به آسیب دیدن بازو شود لذا روش Gray encoding تعریف می‌شود که

## رمزگذاری گِری
3||off||on||off||۱۳۵° to ۱۸۰°

| Sector | Contact ۱ | Contact ۲ | Contact ۳ | Angle        |
| ------ | --------- | --------- | --------- | ------------ |
| 0      | off       | off       | off       | ۰° to ۴۵°    |
| 1      | off       | off       | on        | ۴۵° to ۹۰°   |
| 2      | off       | on        | on        | ۹۰° to ۱۳۵°  |
| 4      | on        | on        | off       | ۱۸۰° to ۲۲۵° |
| 5      | on        | on        | on        | ۲۲۵° to ۲۷۰° |
| 6      | on        | off       | on        | ۲۷۰° to ۳۱۵° |
| 7      | on        | off       | off       | ۳۱۵° to ۳۶۰° |

در این روش خانه‌های همسایه فقط در یک position تفاوت دارد بنابراین مثلاً تغییر از خانه ۴ به ۵فقط در یک contact تفاوت خواهد داشت

## رمزگذاری گری تک‌مسیره
اگر طراح یک contact را به یک موقعیت زاویه‌ای متفاوت (در همان فاصله از شفت) منتقل کند الگوی حلقه‌ها نیاز دارد تا به زاویه جدید چرخش کرده تا خروجی مطلوب را نشان دهد اگر بیشترین بیت (حلقه درونی) چرخش کند دقیقاً روی حلقه بعدی جور شده و چون هر دو یکسان اند بیشترین بیت حذف خواهد شد از این‌رو حسگر ان به باقی‌مانده منتقل می‌شود.

### فرمت خروجی رمزگذار
در نسخه صنعتی سنسور فرمت‌های مختلفی برای انتقال دیتای سنسور وجود دارد از جمله
1. parallel binary
2. SSI
3. ISI
4. ProfitBus


## رمزگذار چرخشی افزایشی
رمزگذار چرخشی افزایشی که به آن quadrature encoder هم گفته می‌شود دارای ۲ خروجی بوده که می‌تواند مکانیکی یا نوری هم باشد که نوع مکانیکی ان دارای دو contact و نوع نوری دو Gray coded track بوده، نوع مکانیکی نیاز به نوسان‌گیر (debouncing)داشته و عموماً به عنوان یک پتانسیومتر دیجیتالی استفاده می‌شود.
البته دقت شود به این دلیل که سوییچ به صورت مکانیکی انجام می‌شود نیاز به نوسان‌گیر داشته ازاین‌رو در تحمل سرعت زاویه‌ای محدود می‌باشد با این وجود به دلیل قیمت کم ان بیشترین استفاده و مصرف را دارد چراکه کلاً از دو حسگر استفاده می‌شود اما دقت شود که دقت فدای هزینه نشده‌است.
به‌طور کلی نوع افزایشی در تایین کردن موقعیت و سرعت (چه خطی و چه زاویه‌ای) استفاده می‌شود