چگونه با ولوم Rotary Encoders کار کنیم؟
سلام دوستان
امروز میخواهم طرز کار روتاری انکودر رو به شما آموزش بدهم.
برای اینکه این آموزش کامل ارائه بشود نیاز به تحلیل بهتر و شناخت بیشتر از این گونه قطعات دارد …
بنابراین من از ابتدا که ببینیم که روتاری اینکودر چی هست و چگونه کار میکند تا طریقه کار کردن و کد نویسی رو به شما آموزش خواهم داد …
پس اولین بخش آموزشم را با نام خدا آغاز میکنم .
بخش 1 :
ساختمان روتاری انکودر :
روتاری انکودرها از لحاظ سخت افزاری از یک صفحه ثابت که روی آن از دو ردیف مربع مربع شکل که به عنوان اتصالات از هم فاصله دارند و از یک اهرم مکانیکی متحرک(کانکتور متحرک) که روی آن صفحه ثابت حرکت میکند ، تشکیل شده است . مانند شکل زیر
همانطور که در شکل بالا دیده میشود قسمت متحرک از یک ورقی که همه کانکتورها به هم وصل هستند ، تشکیل شده است . زمانی که این ورق روی صفحه ثابت بچرخد دو کلید متحرک را تشکیل می دهد .به دلیل وجود اختلاف چرخشی که بین دو ردیف (مربع شکل) است ، در کلیدزنی اول و دوم اختلاف فاز پدید می آید . بنابراین در این گونه ولوم ها اختلاف فاز بین دو کلید وجود دارد .
از آنجا که هر وسیله ای که دارای دو فاز (با اختلاف 90 درجه) میتوان چپگرد یا راستگرد بودن آن را تشخیص داد ، پس میتوانیم راستگرد ; چپگرد بودن ولوم را از این طریق تشخیص دهیم که در بخش های بعدی درباره آن به طور کامل بحث خواهد شد .
شکل موج خروجی روتاری انکودر :
همانطور که گفته شد روتاری انکودر از دو کلید متحرک تشکیل شده است که با هم اختلاف زمانی دارند . مانند شکل زیر
اگر دو مقاومت Pullup بگذاریم شکل موج به این صورت تبدیل میشود .
شکل موج واقعی روتاری انکودر :
همانطور که میدانیم شکل موج واقعی کلید ها آن گونه که ما فکر میکنیم صاف و دقیق نیست …
زمانی که کلید زنی با کلیدها انجام میگیرد یک اختشاش کلید زنی یا به اصطلاح Bounce پدید می آید . در حقیقت زمانی که کلیدی را فشار میدهیم همان لحظه به طور کامل وصل نمیشود و پس از چند بار قطع و وصل شدن شکل موج ثابت باقی می ماند .مانند شکل زیر
در بعضی جاها اختشاش کلیدزنی مهم نیست و لزومی ندارد که آن را حذف کنیم . ولی معمولا در سیستمهای دیجیتالی که میخواهند با دنیای بیرون ارتباط برقرار کنند نیاز داریم تا این گونه اختشاش را حذف کنیم .
این ولوم ها هم مانند همین شکل Bounce تولید میکنند که باید آن را حذف کنیم .
حذف Bounce یا همون Debounce به دو صورت انجام میگیرد:
1. نرم افزاری
2. سخت افزاری
حذف کردن Bounce به صورت نرم افزاری :
در این روش با دیدن اولین لبه کلید زنی زمانی را به عنوان تاخیر در نظر میگیریم و پس از آن سیگنال ها را استفاده میکنیم .
خوبی این روش این است که سخت افزار اضافی ندارد و بدی این روش هم این است که به اندازه یک مدت کوتاهی پردازنده دیجیتالی را مشغول نگه می دارد .
حذف کردن Bounce به صورت سخت افزاری :
در این روش با گذاشتن دو مقاومت و یک خازن ، Bounce را حذف می کنیم . مانند شکل زیر
خوبی این روش این است که پردازنده را مشغول نگه نمیدارد چون دستور تاخیری ندارد و نسبت به روش نرم افزاری هم دقیق تر است.
البته یک روش قدیمی هم هست(شکل بالا سمت راست) که به هیچ عنوان این روش را پیشنهاد نمی کنم چون پس از مدتی ولوم را خراب می کند .
خودم این کار رو کردم ولومم دیگه مثل قبل خوب کار نمیکنه … دلیلش اینه که چون ولتاژ در خازن ذخیره بوده و یکدفعه ولوم آن را صفر ولت میکند ، باعث جریان کشی لحظه ای و جرقه های بسیار ریز که موجب خرابی ولوم می شود …