
Двухосевой джойстик (KY-023, PS2) — это модуль манипулятор, позволяющий пользователю управлять различными устройствами (шасси, роботами), состоявший из двух потенциометров и одной тактовой кнопкой.
Технические параметры
► Напряжение питания: 5 В
► Поворот ручки: 360°
► Габариты: 34 мм х 26 мм х 34 мм
Общие сведения
Модуль KY-023 состоит из двух потенциометров на 10 кОм (расположенных перпендикулярно), для определения осей X и Y необходимо изменить положение джойстика. Средняя нога каждого потенциометра выведена на разъем J1 (контакты VRX и VRY), а вторая и третья нога подключена к питанию и массе. Дополнительно установлена тактовая кнопка, показания снимаются с разъема J1 (контакт SW), так-же предусмотрено посадочное место для подтягивающего резистора (R1).

Принципиальную схему модуля, можно посмотреть ниже, резистор R1 указан без номинала.

Для считывания данных с выводов VRX (ось X) и VRY (ось Y) необходимо использовать аналоговые порт Arduino. (значение от 0 до 5В или от 0 до 1023), а для считывания данных с вывода RW используем цифровой порт (значение 0В и 5В или 0 и 1). Так-как один вывод тактовой кнопки подключен к земле и при нажатии на джойстик вниз, происходит замыкание цепи, но возможно ложные срабатывания (наводки). Для получения стабильных показаний, вывод RW необходимо подтянуть к питанию +5В, через подтягивающий резистор R1 или использовать встроенный подтягивающий резистор.
Подключение двухосевого джойстика к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Провод DuPont x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► Двухосевой джойстик (KY-023, PS2) x 1 шт.
Подключение:
Обратите внимание, в примере используется встроенный подтягивающий резистор (можно использовать и внешний, для этого необходимо добавить резистор R1, типа размера 0805). Подключаем провода, VRX к аналоговому порту А0, VRY к аналоговому порту A1, SW к цифровому порту 3, осталось подключить питание +5В к выводу 5V и GND к GND на Arduino.
Запускаем среду разработки и загружаем данный скетч, затем открываем мониторинг порта.
/*
Тестировалось на Arduino IDE 1.8
Дата тестирования 09.01.2017г.
*/
int Xin= A0; // Пин к которому подключен VRX
int Yin = A1; // Пин к которому подключен VRY
int KEYin = 3; // Пин к которому подключен VRY
void setup ()
{
pinMode (KEYin, INPUT); // Установим вывод 5 как вход
Serial.begin (9600); // Задаем скорость передачи данных
digitalWrite(KEYin, HIGH); // Включаем подтягивающий резистор
}
void loop ()
{
int xVal, yVal, buttonVal; // Создаем переменные
xVal = analogRead (Xin); // Считываем значение с порта Xin
yVal = analogRead (Yin); // Считываем значене с порта Yin
buttonVal = digitalRead (KEYin); // считываем значение с прта KEYin
Serial.print("X = "); // Выводим текст
Serial.println (xVal, DEC); // Выводим значение переменной xVal
Serial.print ("Y = "); // Выводим текст
Serial.println (yVal, DEC); // Выводим значение переменной yVal
Serial.print("Button: "); // Выводим текст
if (buttonVal == HIGH) // Если buttonVal равно "1", кнопка не нежата
{
Serial.println ("not pressed"); // Выводим текст
}
else
{
Serial.println ("pressed"); // Если buttonVal раво "0" кнопка нажата
}
delay (500); // Ждем 500 мкс.
}
В мониторинг порта, можно увидеть все изменения джойстика и нажатия кнопки.
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Двухосевой джойстик (KY-023, PS2)
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Двухосевой джойстик (KY-023, PS2)




Ак как у Вас кириллица в сериал выводиться?У меня квадратики просто.
Добрый день, если в среде IDE Arduino создать новый проект и копированием вставить код, затем загрузить все в плату Arduino, в сериал будет отображаться на русском…
В последующих статьях, пришлось отказаться от кириллицы…