Коротко про KY-040
KY-040 — модуль інкрементального поворотного енкодера з кнопкою для ручного введення команд у мікроконтролерних проєктах. Обертання формує квадратурні сигнали CLK і DT, за якими програма визначає напрямок та зміну значення, а натискання на вісь замикає окремий контакт SW.
Ключові характеристики
- Тип
- інкрементальний поворотний енкодер із кнопкою
- Вихід
- квадратурний, канали CLK і DT
- Імпульсів за оберт
- 20
- Живлення
- 3,3–5 В
- Контакти
- 5: GND, +, SW, DT, CLK
- Споживаний струм
- 10 мА
Детальний опис та особливості
Як енкодер визначає напрямок
Під час обертання два цифрові канали CLK і DT перемикаються зі зсувом у часі. Контролер порівнює послідовність переходів і збільшує або зменшує програмне значення. Якщо напрямок у готовій програмі відображається навпаки, достатньо поміняти місцями CLK і DT або змінити правило обробки в коді.
Енкодер формує 20 імпульсів за оберт. Кількість програмних відліків за один оберт може відрізнятися залежно від того, чи код рахує один фронт, обидва фронти або всі переходи двох квадратурних каналів.
Кнопка на осі
Натискання формує окремий сигнал SW. У програмі йому можна призначити підтвердження вибору, перехід між пунктами меню, повернення або скидання лічильника до нуля. Сам модуль не зберігає значення та не виконує скидання без логіки контролера.
Практична обробка сигналу
Механічні контакти KY-040 можуть створювати короткі зайві переходи, через які виникає подвійний відлік або помилкове визначення напрямку.[2] Щоб зменшити вплив брязкоту контактів, використовуйте квадратурний декодер або бібліотеку з debounce та перевіряйте роботу на потрібній швидкості обертання.
Підійде / не підійде
Підійде
- для прокручування меню та підтвердження вибору натисканням;
- для цифрового регулювання гучності, яскравості, швидкості або заданого значення через мікроконтролер;
- для навчальних схем із квадратурними сигналами, перериваннями та обробкою кнопок;
- для панелей керування, де ручка має обертатися без кінцевих упорів.
Не підійде
- як аналогова заміна потенціометра без мікроконтролера;
- для визначення абсолютного кута після ввімкнення або для збереження положення без програмної пам’яті;
- як вимірювальний енкодер вала двигуна, коли потрібні підтверджені швидкість, ресурс або точність позиціонування;
- для безпосереднього комутування двигуна, лампи чи іншого навантаження.
Повні характеристики
| Параметр | Значення |
|---|---|
| Модель модуля | KY-040 |
| Принцип роботи | інкрементальний, квадратурний |
| Напруга живлення | 3,3–5 В |
| Кількість імпульсів за оберт | 20 |
| Обертання | без кінцевих упорів, у двох напрямках |
| Сигнальні лінії | CLK, DT, SW |
| Усі контакти | GND, +, SW, DT, CLK |
| Споживаний струм | 10 мА |
| Розміри | 26,3 × 19 × 22,2 мм |
| Робоча температура | −40…+85 °C |
Під час проєктування корпусу залиште місце для обертання та натискання осі.
Підключення
Знеструмте схему
Підключайте модуль без поданої напруги. З’єднайте GND модуля із загальною землею контролера.
Оберіть напругу живлення
Під’єднайте контакт «+» до 3,3 або 5 В відповідно до логічного рівня GPIO контролера. Для контролера з GPIO 3,3 В живіть KY-040 від 3,3 В; для 5-вольтової плати можна використовувати 5 В.
Підключіть канали обертання
CLK і DT під’єднайте до двох цифрових входів. Програма має порівнювати їхні стани, щоб визначати напрямок.
Підключіть кнопку
SW під’єднайте до цифрового входу та налаштуйте його з підтягуванням до живлення, наприклад у режимі INPUT_PULLUP. Натискання слід обробляти як активний низький рівень.
Налаштуйте зчитування
Опитуйте CLK і DT достатньо часто. Якщо основний цикл містить тривалі затримки, використовуйте переривання або бібліотеку енкодера, інакше швидкі переходи можна пропустити.[1]
Приклади застосування
Меню пристрою
Обертання переміщує курсор або змінює значення, а натискання SW підтверджує вибір. Один модуль замінює кілька окремих кнопок у компактній панелі керування.
Цифрове регулювання
Контролер може перетворювати кроки енкодера на команду зміни гучності, яскравості, частоти або іншого програмного параметра. KY-040 при цьому задає команду, а не комутує навантаження.
Лічильник із ручним скиданням
CLK і DT дають змогу збільшувати та зменшувати значення, а кнопці SW можна призначити повернення до нуля. Межі, крок і збереження результату визначаються програмою.
Обмеження та безпека
Узгодьте логічні рівні
Не живіть модуль від 5 В, якщо його виходи підключені до GPIO, які не допускають 5-вольтових рівнів. Для ESP32, RP2040 та інших 3,3-вольтових контролерів безпечніше живити KY-040 від 3,3 В.
Не покладайтеся на необроблений сигнал
Механічні контакти можуть створювати брязкіт, а повільне опитування — пропускати переходи. Перед використанням у готовому пристрої перевірте debounce та зчитування на реальній швидкості обертання.
Це не абсолютний датчик положення
Після ввімкнення модуль не повідомляє абсолютний кут і не відновлює попереднє значення. Якщо стан має зберігатися, реалізуйте початкове значення та пам’ять у контролері.
Бережіть механіку
Під час монтажу залиште осі вільний хід для обертання й натискання. Не прикладайте бокове зусилля та не використовуйте модуль як силовий механічний вузол.
Сумісні товари та аксесуари
Для 5-вольтового прототипу можна обрати Nano V3.0 на ATmega328P. Для проєкту з Wi-Fi або Bluetooth підійде ESP32 MiniKit, але KY-040 у такій схемі слід живити від 3,3 В.
Для безпайкового тестування зручно використати макетну плату на 170 отворів; дроти-перемички підбираються окремо відповідно до роз’ємів контролера.
FAQ
Чи можна підключити KY-040 до контролера з логікою 3,3 В?
Так. Модуль підтримує живлення 3,3–5 В. Для GPIO з логікою 3,3 В живіть модуль від 3,3 В, щоб не подавати на вхід контролера вищий логічний рівень.
Чому лічильник іноді перескакує або змінюється не в той бік?
Найчастіше це наслідок брязкоту механічних контактів або надто повільного опитування. Використайте квадратурний декодер із debounce, приберіть тривалі delay та перевірте результат на потрібній швидкості.
Чи кнопка автоматично скидає лічильник?
Ні. Натискання лише змінює стан лінії SW. Скидання до нуля, підтвердження або іншу дію потрібно призначити в програмі контролера.
Чи можна визначити абсолютний кут повороту?
Ні. KY-040 передає лише послідовність кроків і напрямок руху; початкове значення задає програма.
Документи та джерела
- Wokwi — KY-040 Rotary Encoder Reference: модель симулятора, призначення контактів і рекомендація щодо частого опитування або переривань.
- Big Dan — Using a KY040 Rotary Encoder with Arduino, 16.08.2014: дослідження одного зразка KY-040 логічним аналізатором і приклад впливу брязкоту контактів.