KY-040 یک انکودر دورانی افزایشی (Rotary Encoder) بههمراه یک کلید فشاری مرکزی است و در بسیاری از پروژههای رابط کاربری (تنظیم منو، کنترل صدا، انتخابگر زاویه موتور و …) استفاده میشود. درون شافت آن چند کانال نوری یا مکانیکی وجود دارد که هنگام چرخش دو سیگنال مربعی Quadrature به نامهای CLK و ) DTیا (A/Bتولید میکنند؛ تقدم این دو سیگنال جهت چرخش را مشخص میکند.
پایه | عملکرد | توضیح |
CLK (A) | خروجی دیجیتال کانال A | با هر گام از LOW→HIGH یا برعکس تغییر میکند |
DT (B) | خروجی دیجیتال کانال B | 90° فاز نسبت به CLK برای تشخیص جهت |
SW | کلید فشاری شافت | هنگام فشار به GND وصل میشود |
+ | VCC | ) 3.3 – 5 Vبرای ESP32 3.3 V بگیرید( |
GND | زمین | مرجع مشترک |
Pull-up داخلی: خیلی از بردهای KY-040 مقاومت pull-up برای CLK/DT/SW ندارند یا فقط برای یکی دارند؛ در برنامه حتماً INPUT_PULLUP فعال کنید.
اتصال پیشنهادی به(DevKit v1) ESP32
KY-040 | ESP32 | دلیل انتخاب |
+ | 3.3V | تغذیهV 3.3 ؛ سطوح منطقی هماهنگ است |
GND | GND | زمین مشترک |
CLK | GPIO 32 | ورودی فقط و وقفهپذیر؛ روی ADC1 نیست) ایمن برای (Wi-Fi |
DT | GPIO 33 | ورودی فقط و وقفهپذیر |
SW | GPIO 25 | ورودی معمولی با) Pull-up کلید فشاری( |
میتوانید هر GPIO وقفهدار دیگر هم انتخاب کنید؛ فقط پایههای حسّاس بوت (0،2،12،15) را برای کلید نگذارید تا هنگام روشن شدن مزاحم نشود.
نکات عملی
موضوع | توصیه |
دیبونس مکانیکی | چرخش سریع جهشهای الکتریکی تولید میکند؛ دیبونس نرم 1-3 ms کافی است. |
رزولوشن واقعی | هر «کلیک» مکانیکی 2 یا 4 تغییر لبه ایجاد میکند (بسته به مدل)؛ در کد بالا هر لبه را میشماریم، پس ممکن است برای یک کلیک مقدار ±2 یا ±4 ببینید. با تقسیم یا فیلتر نرم میتوانید مقیاس را تنظیم کنید. |
فشار طولانی | برای تشخیص press/hold، مدت پایین بودن SW را ثبت کنید (مثلاً >800 ms = نگهداشتن). |
کابل بلند | اگر نویز زیاد است، خازن 100 nF بین CLK و GND و بین DT و GND نزدیک برد بگذارید. |
استفاده با OLED/Menu | ترکیب KY-040 + ESP32 + OLED SSD1306 یک کنترلر منو ارزان میسازد؛ چرخش برای پیمایش، فشار برای انتخاب. |
جمعبندی
- KY-040 انکودر دورانی افزایشی + کلید فشاری است.
- برای +→3.3 V :ESP32، GND→GND، →CLK/DT دو GPIO وقفهپذیر (Pull-up)، →SW یک GPIO با Pull-up.
- با وقفه روی لبهٔ CLK و خواندن DT میتوانید جهت و تعداد گامها را بهدقت بشمارید؛ دیبونس نرم 2 ms برای چرخش و 20 ms برای کلید توصیه میشود.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.