Енкодер обертання KY-040 - це обертальний датчик, який характеризує ступінь повороту вісі та в якому напрямку вона обертається.
Це відмінний прилад для контролю крокових та серво - двигунів. З нього вийде крутезний орган керування менюшкою налаштувань контролера. Ви також можете використовувати його в якості цифрового потенціометра.
Опис роботи енкодера
Обертальний енкодер має фіксовану кількість позицій на оберт. Ці позиції легко відчуваються руками як невеликі клацання під час обертання вісі енкодера. Даний модуль енкодера має тридцять таких позицій. Кількість таких позицій характеризує чутливість датчика обертання.
В окремого датчика є три виводи. Вони зазвичай позначаються як A, B та C. У випадку KY-040, вони орієнтовані так, як показано на малюнку. Всередині енкодера є два перемикачі. Перший перемикач з'єднує вивід А з виводом С, а другий з'єднує вивід B з виводом C. В кожному фіксованому положенні датчика, обидва перемикачі або відкриті або зачинені. Кожний клік значить перемикання стану перемикачів наступним чином: Якщо обидва перемикача замкнені, то обертаючи вісь за годинниковою стрілкою або проти неї на одну позицію переведе обидва перемикача на розмикання Якщо обидва розімкнені, обертаючи вісь за годинниковою стрілкою або проти неї на одну позицію переведе обидва перемикача у замкнений стан. На наведеному нижче малюнку показано розташування перемикачів.
Як ви можете бачити, кутове положення контакту A та контакту B таке, що: рухома пластинка, обертаючись за годинниковою стрілкою, з'єднає контакти А та С. Рухома пластина, обертаючись проти годинникової стрілки, з'єднає контакти В та С. Відобразимо на графіку перехідні характеристики контактів під час рівномірного обертання пластини.
Визначивши те, яка пара контактів змінює свій стан першою, дізнаємось напрям обертання валу. Якщо контакт А змінює стан першим, то вал обертається у напрямку за годинниковою стрілкою. Якщо ж контакт B змінює свій стан першим, то вал енкодера обертається в напрямку проти годинникової стрілки.
Виводи KY-040
На наступному малюнку показано призначення виводів даного ротаційного енкодера.
Модуль сконструйовано таким чином, що низький логічний рівень з'являється, коли контакти замкнені, та високий, коли контакти розімкнені. Низький сигнал генерується шляхом замикання контакту C на загальний дріт, а також нуль подається в цей час і на виводи CLK та DT, коли перемикач замкнений. Високий рівень генерується подачею напруги живлення 5В через підтягуючий резистор. При цьому на виходах CLK та DT будуть одиниці, коли контакти енкодера розімкнені. Також в даного енкодера є кнопка, що розташована на початку валу, та вона є його невід'ємною частиною. Якщо натиснути на вал, то нормально відкритий контакт кнопки замкнеться. Це може бути корисним для програмного збільшення або зменшення чутливості датчика, а також для вибору пунктів меню, якщо використовувати енкодер як пристрій для уведення налаштувань меню.
Схема ротаційного енкодера
Схема цього модуля наведена нижче. R2 та R3 на схемі виконують функцію підтягуючих резисторів.

Схема підключення енкодера KY-040

Підключення модуля до Arduino

Приклад програми під Arduino
int pinA = 2; // номер виводу, підключеного до CLK енкодераint pinB = 3; // номер виводу контролера, підключеного до DT енкодераint encoderPosCount = 0;int pinALast;void setup() {Serial.begin (115200);pinMode (pinA,INPUT);pinMode (pinB,INPUT);pinALast = digitalRead(pinA);attachInterrupt(0, doEncoderA, CHANGE); //переривання за зміною на піні №2(для Arduino UNO)}void loop() {//ваша програма, що використовує значення положення енкодера encoderPosCount}void doEncoderA() {// слідкуємо за переходом low-to-high на контакті Aif (pinALast != digitalRead(pinA)){if (digitalRead(pinA) == HIGH) {// перевіряємо контакт B для визначення напрямку обертанняif (digitalRead(pinB) == LOW) {encoderPosCount ++; // CW}else {encoderPosCount--; // CCW}}else // слідкуємо за переходом high-to-low на виводі A{// перевіряємо вивід B для визначення напрямку обертанняif (digitalRead(pinB) == HIGH) {encoderPosCount ++; // CW}else {encoderPosCount--; // CCW}}Serial.println (encoderPosCount);}pinALast = digitalRead(pinA);}
Датчик обертання енкодер KY-040
- Модель KY-040
- Наявність Є в наявності
-
36.41грн.