У цьому проекті ми збираємось взаємодіяти РОТАЦІЙНИЙ ЕНОДЕР з ARDUINO. ARDUINO UNO - це плата розробки на базі контролера ATMEGA, призначена для інженерів-електронників та любителів. У ARDUINO у нас є 20 висновків вводу-виводу, тому ми можемо запрограмувати 20 висновків UNO, які будуть використовуватися як вхідні, так і вихідні.
Ротаційні енкодери використовується, щоб знати положення руху і кутового переміщення двигуна або осі. Зазвичай це три термінальні пристрої, разом із штифтами живлення та заземлення є 5 терміналів. Модуль ROTARY ENCODER показаний нижче.
Штифтами поворотного кодера є:
- Земля
- Позитив підключений до + 5В
- Вихідний сигнал Пін
- Вихідний сигнал B контакт
- Годинник штифт або загальний штифт
ЕНОДЕР забезпечує імпульси, що відображають зміну положення вала для розуміння систем. Припустимо, РОТАЦІЙНИЙ ЕНОДЕР ввімкнено, а вал переміщений.
Як показано в таблиці вище, врахуйте, що вал переміщений за годинниковою стрілкою. З цим буде Falling Edge на терміналі A, а потім на терміналі B.
Вважайте, що вал переміщений проти годинникової стрілки. З цим буде Falling Edge на терміналі B, а потім на терміналі A.
Цей край виникає один раз для 360/20 = 18 градусів (це для кодера з положенням 20, це змінюється від типу до типу, чим більше відлік, тим більша точність).
За обох вищевказаних умов ми можемо отримати напрямок і ступінь обертання. Таким чином ми отримуємо необхідні параметри для отримання положення валу.
Потрібні компоненти
Апаратне забезпечення: плата Arduino uno, з'єднувальні штирі, резистор 220 Ом, світлодіод (вісім штук), резистор 1 кОм, резистор 220 Ом (2 частини), конденсатор 100 нФ (2 штуки), плата для хліба
Програмне забезпечення: Arduino щоночі
Принципова схема та робоче пояснення
Тут конденсатори призначені для нейтралізації ефекту підстрибування контактів у ENCODER. Без цих конденсаторів виникнуть серйозні проблеми при зчитуванні положення.
Коли вал буде переміщений, буде мати місце різниця в часі між двома вихідними штифтами на виході. Arduino UNO розпізнає цю різницю в часі за годинниковою стрілкою проти годинникового повороту.
Якщо обертання відбувається за годинниковою стрілкою, двійковий рахунок збільшується на одиницю, і цей відлік відображається у порту світлодіодів, як показано на малюнку.
Якщо обертання встановлено проти годинникового режиму, двійковий рахунок зменшується на одиницю, а двійковий рахунок відображається на байті світлодіода.
Робота Arduino з поворотним кодером пояснюється поетапно в коді С, наведеному нижче.