Підключення двоосьового джойстика KY-023 до Arduino

Про матеріал
Підключення двоосьового джойстика KY-023 до Arduino. У tinkercad скласти схему, що реалізує роботу джостика​ ​
Зміст слайдів
Номер слайду 1

Підключення двоосьового джойстика KY-023 до Arduino

Номер слайду 2

Мета та ціль. У tinkercad скласти схему, що реалізує роботу джостика

Номер слайду 3

ХІД РОБОТИРозглянемо підключення джойстика до плати Arduino, за допомогою якого ми керуватимемо включенням/вимкненням 4-х світлодіодів, які показуватимуть напрямок переміщення ручки джойстика.

Номер слайду 4

Це модуль маніпулятор, що складається з двох потенціометрів і однією тактовою кнопкою, щодозволяє користувачеві керуватирізними пристроями​. Двоосьовий джойстик (KY-023) PS2 Joystick

Номер слайду 5

Напруга живлення: 5 ВПоворот ручки: 360 °Розміри: 40 мм х 26 мм х 32 мм. Технічні характеристики (KY-023​) PS2 Joystick

Номер слайду 6

Модуль джойстика містить 5 контактів: два для подачі живлення, два для потенціометрів по осях X та Y і один для центрального перемикача. Розпинка модуля джойстика показана на наступному малюнку. Розпинування модуля джойстика

Номер слайду 7

VCC – контакт для живлення. У проекті його необхідно підключити до контакту 5 V плати Arduino. GND - загальний провід (земля). Необхідно підключити до землі плати Arduino. VRx/VRy – виходи потенціометрів. SW – вихід перемикача. При натисканні у ньому формується рівень low. Призначення контактів

Номер слайду 8

Схема проекту

Номер слайду 9

код програми У наступному фрагменті коду ми ініціалізуємо аналогові контакти Arduino A0 та A1 щоб відстежувати переміщення джойстика по осях X та Y відповідно.#define joy. X A0#define joy. Y A1

Номер слайду 10

Далі ми ініціалізуємо контакт PIN 2 (до нього підключена кнопка джойстика) та визначимо початкові значення змінних buttonstate та buttonstate1.int button=2;​int button. State = 0;​int button. State1 = 0;​

Номер слайду 11

У наступному фрагменті коду ми ініціалізуємо послідовний порт зв'язку для роботи на швидкості 9600 бод/с і встановимо режим роботи контактів: Pin 7 – на виведення даних, контакт, до якого підключена кнопка – на введення даних.void setup() {  pin. Mode(7,OUTPUT);  pin. Mode(button,INPUT);  digital. Write(button, HIGH);  Serial.begin(9600);}

Номер слайду 12

Далі у програмі ми зчитуємо значення з аналогових входів A0 та A1 та передаємо їх у вікно монітора послідовного зв'язку.int x. Value = analog. Read(joy. X);int y. Value = analog. Read(joy. Y);  Serial.print(x. Value);  Serial.print("\t");  Serial.println(y. Value);

Номер слайду 13

Потім ми повинні прописати в програмі умови включення та вимкнення світлодіодів залежно від переміщень осі джойстика. На наступному малюнку представлені діапазони можливих змін значень на виходах контактів АЦП A0 і A1 в залежності від переміщення осі джойстика.

Номер слайду 14

Умова для переміщення осі джойстика в напрямку Y:if (x. Value>=0 && y. Value<=10){    digital. Write(10, HIGH);  }  else{digital. Write(10, LOW);}

Номер слайду 15

Умова для переміщення осі джойстика у напрямку -X:  if (x. Value<=10 && y. Value>=500){    digital. Write(11, HIGH);  }  else{digital. Write(11, LOW);}

Номер слайду 16

Умова для переміщення осі джойстика у напрямку +X:  if (x. Value>=1020 && y. Value>=500){    digital. Write(9, HIGH);  }  else{digital. Write(9, LOW);}

Номер слайду 17

Умова для переміщення осі джойстика у напрямку +Y:  if (x. Value>=500 && y. Value>=1020){    digital. Write(8, HIGH);  }  else{digital. Write(8, LOW);}

Номер слайду 18

Але якщо ми перемістимо джойстик по діагоналі, значення з виходів АЦП по осях X і Y будуть 1023 і 1023 відповідно. І, оскільки, в цьому випадку будуть виконані відразу дві з перерахованих вище умов, то повинні запалитися світлодіоди, підключені до контактів Pin 9 і Pin 8. Щоб усунути цю невідповідність, ми додамо ще умову - якщо обидва значення (X, Y) будуть рівні ( 1023, 1023), тоді обидва світлодіоди будуть у вимкненому стані.  if (x. Value>=1020 && y. Value>=1020)  {    digital. Write(9, LOW);    digital. Write(8, LOW);  }

Номер слайду 19

І насамкінець нам залишилася одна умова для кнопки джойстика – при її натисканні буде загорятися світлодіод і горіти до тих пір, поки ми не відпустимо кнопку.  if (button. State == LOW)  {    Serial.println("Switch = High");    digital. Write(7, HIGH);  }  else{digital. Write(7, LOW);}

Номер слайду 20

Вихідний код програми

Номер слайду 21

Вихідний код програми​

Номер слайду 22

Тестування роботи проекту

Номер слайду 23

Закріплення матеріалу. Отже, що ви дізналися на цьому занятті? Що засвоїли та чому навчилися?

pptx
Додав(-ла)
Кіра Богдана
Додано
17 квітня
Переглядів
139
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку