Як підключити джойстик до arduino

Існує велика різноманітність способів передачі інформації від людини микроконтроллеру або комп`ютера, і один з них - це використання джойстика. Давайте подивимося як підключити до Arduino аналоговий джойстик з двома осями і кнопкою.
Вам знадобиться

Відео - 3D-Joystick. Troyka-модуль джойстик для Arduino. Залізяки Амперкі # 32

  • - Arduino;
  • - двовісний джойстик;
  • - 3 резистора номіналом 220 Ом;
  • - 1 RGB або 3 звичайних світлодіода.
Інструкція
1

Відео - Модуль джостика KY 023 підключення до Arduino

Джойстик - зручне і легке у використанні пристрій для передачі інформації. Видів джойстиків за кількістю ступенів свободи, принципом зчитування показань і використовуваних технологій існує велика кількість. Джойстики найчастіше використовуються для управління рухом будь-яких механізмів, керованих моделей, роботів. Аналоговий джойстик, який ми сьогодні розглянемо, являє собою ручку, закріплену на кульовому шарнірі з двома взаємно перпендикулярними осями. При нахилі ручки, вісь обертає рухливий контакт потенціометра, завдяки чому змінюється напруга на його виході. Також аналоговий джойстик має тактову кнопку, яка спрацьовує при вертикальному натисканні на ручку.
Принципова схема джойстика
2
Підключимо джойстик за наведеною схемою. Аналогові виходи X і Y джойстика підключимо до аналогових входів A1 і A2 Arduino, вихід кнопки SW - до цифрового входу 8. Харчування джойстика здійснюється напругою +5 В.



Схема підключення джойстика до Arduino

Відео - Usfika | Arduino | елементарний маніпулятор

3
Для того щоб наочно побачити, як працює джойстик, напишемо такий скетч. Оголосимо Піни, задамо їм режими роботи. Зверніть увагу, в процедурі setup () ми подали на вхід switchPin високий рівень. Цим ми включили вбудований підтягаючий резистор на цьому порту. Якщо його не включити, то, коли кнопка джойстика не було натиснуто, 8-ий порт Arduino буде висіти в повітрі і ловити наводки. Це спричинить за собою небажані хаотичні помилкові спрацьовування.

У процедурі loop () ми постійно опитуємо стан кнопки і відображаємо його за допомогою світлодіода на виході 13. Через те, що вхід switchPin підтягнутий до харчування, світлодіод постійно горить, а при натисканні кнопки гасне, а не навпаки.

Далі ми зчитуємо показання двох потенціометрів джойстика - виходу осей X і Y. Arduino має 10-розрядні АЦП, тому значення, що знімаються з джойстика, лежать в діапазоні від 0 до 1023. В середньому положенні джойстика, як видно на ілюстрації, знімаються значення в районі 500 - приблизно середина діапазону.

Скетч для демонстрації роботи джойстика

Відео - Як зробити радіоуправління 1 частина - як підключити джойстик від Денді (NES)

4
Зазвичай джойстик використовують для управління електродвигунами. Але чому б не використати його, наприклад, для управління яскравістю світлодіода? Давайте підключимо за наведеною схемою RGB світлодіод (або три звичайних світлодіода) до цифрових портів 9, 10 і 11 Arduino, не забуваючи, звичайно, про резисторах.
Схема підключення джойстика і RGB світлодіоди до Arduino
5
Будемо міняти яскравість відповідних кольорів при зміні положення джойстика по осях, як показано на малюнку. Через те, що джойстик може бути не точно відцентровано виробником і мати середину шкали нема на позначці 512, а від 490 до 525, то світлодіод може злегка світитися навіть коли джойстик знаходиться в нейтральному положенні. Якщо ви хочете, щоб він був повністю виключений, то внесіть в програму відповідні поправки.
Діаграма розподілу яскравості R, G, B каналів по осях X і Y
6
Орієнтуючись на наведену діаграму, напишемо скетч управління Arduino яскравістю RGB світлодіоди за допомогою джойстика.

Спочатку оголосимо відповідність пінів і дві змінні - ledOn і prevSw - для роботи з кнопкою. У процедурі setup () призначимо пінам функції і підключимо до піну кнопки підтягаючий резистор командою digitalWrite (swPin, HIGH).

У циклі loop () визначаємо натискання кнопки джойстика. При натисканні на кнопку перемикаємо режими роботи між режимом "ліхтарика" і режимом "світломузики".




В режимі freeMode () управляємо яскравістю світлодіодів за допомогою нахилу джойстика в різні боки: чим сильніше нахил по осі, тим яскравіше світить відповідний колір. Причому перетворення значень бере на себе функція map (значення, отНіжнего, отВерхнего, книжкові, кВерхнему). Функція map () переносить виміряні значення (отНіжнего, отВерхнего) по осях джойстика в бажаний діапазон яскравості (книжкові, кВерхнему). Можна те ж саме зробити звичайними арифметичними діями, але такий запис істотно коротше.

В режимі discoMode () три кольори поперемінно набирають яскравість і гаснуть. Щоб можна було вийти з циклу при натисканні кнопки, кожну ітерацію перевіряємо, чи не була натиснута кнопка.

Скетч для управління яскравістю світлодіода за допомогою аналогового джойстика

Відео - FLProg - Урок 9. Як підключити двигуни до Arduino

7
В результаті вийшов ліхтарик з триколірного RGB світлодіоди, яскравість світіння кожного кольору якого задається за допомогою джойстика. А при натисканні на кнопку відбувається включення режиму "світломузика". Хоча у мене він використовується, навпаки, як нічник.

Таким чином, ми навчилися підключати до Arduino аналоговий двовісний джойстик з кнопкою і зчитувати з нього свідчення. Ви можете придумати і реалізувати більш цікаве застосування джойстика, ніж наш приклад.

RGB світлодіод, керований джойстиком і Arduino

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!
Схожі
» » Як підключити джойстик до arduino