Двухосевой джойстик (KY-023, PS2) — это модуль манипулятор, состоявший из двух потенциометров и одной тактовой кнопкой, позволяющий пользователю управлять различными устройствами (шасси, роботами), например для дистанционного управления двух-координатным поворотным устройством видеокамеры, которое можно вращать в двух плоскостях.
Технические характеристики KY-023
- Напряжение питания: 5 В
- Поворот ручки: 360°
- Размеры: 40 мм х 26 мм х 32 мм
Распиновка KY-023
Вывод | Описание |
---|---|
GND | Земля/общий |
+5V/VCC | Питание |
VRX | Аналоговый выход потенциометра оси X |
VRY | Аналоговый выход потенциометра оси Y |
SW | Выход кнопки |
Принципиальная схема джойстика KY-023
Модуль двухосевого джойстика состоит из двух потенциометров на 10 кОм, определяющие положение осей X и Y изменение сопротивления осуществляется рычагом. Средняя нога каждого потенциометра выведены на контакты VRX и VRY, а вторая и третья нога подключена к питанию и массе. Дополнительно установлена тактовая кнопка, показания снимаются с контакта SW, так-же предусмотрено посадочное место для подтягивающего резистора (R1).
Для считывания данных с выводов VRX (ось X) и VRY (ось Y) необходимо использовать аналоговые порт Arduino. (значение от 0 до 5В или от 0 до 1023), а для считывания данных с вывода RW используем цифровой порт (значение 0В и 5В или 0 и 1). Так-как один вывод тактовой кнопки подключен к земле и при нажатии на джойстик вниз, происходит замыкание цепи, но возможно ложные срабатывания (наводки). Для получения стабильных показаний, вывод RW необходимо подтянуть к питанию +5В, через подтягивающий резистор R1 или использовать встроенный подтягивающий резистор.
Схема подключения джойстика KY-023 к Arduino
Для считывания значений с потенциометров джойстика будут использоваться пара аналоговых контактов на Arduino (A0 и A1) и цифровой вывод для считывания значений с кнопки.
KY-023 | Arduino |
---|---|
GND | GND |
+5V | 5V |
VRx | A0 |
VRy | A1 |
SW | 3 |
В примере используется встроенный подтягивающий резистор (можно использовать и внешний, для этого необходимо добавить на модули резистор R1, типа размера 0805). Подключаем провода, VRX к аналоговому порту А0, VRY к аналоговому порту A1, SW к цифровому порту 3, осталось подключить питание +5В к выводу 5V и GND к GND на Arduino Pro Mini или Arduino Uno.
Пример скетча
Следующий скетч Arduino будет постоянно считывать значения с потенциометров и кнопки на KY-023 и преобразует их в значение напряжения (0-1023 -> 0V-5V). Перемещение джойстика вверх/вниз увеличит/уменьшит значения X и перемещение джойстика влево/вправо увеличится/уменьшится для значений Y. Нажмите на джойстик, чтобы активировать кнопку. Запускаем среду разработки и загружаем данный скетч, затем открываем мониторинг порта.
/*
Пин к которому подключен VRX
*/
#define VRX A0
/*
Пин к которому подключен VRY
*/
#define VRY A1
/*
Пин к которому подключен SW
*/
#define SW 3
void setup() {
/*
Установим вывод SW как вход
*/
pinMode(SW, INPUT);
/*
Включаем подтягивающий резистор
*/
digitalWrite(SW, HIGH);
/*
Задаем скорость передачи данных
*/
Serial.begin(9600);
}
void loop() {
/*
Создаем переменные
*/
int xVal, yVal, swVal;
/*
Считываем значение с порта VRX
*/
xVal = analogRead(VRX);
/*
Считываем значене с порта VRY
*/
yVal = analogRead(VRY);
/*
считываем значение с прта SW
*/
swVal = digitalRead(SW);
/*
Выводим текст
*/
Serial.print("X = ");
/*
Выводим значение переменной xVal
*/
Serial.println(xVal, DEC);
/*
Выводим текст
*/
Serial.print("Y = ");
/*
Выводим значение переменной yVal
*/
Serial.println(yVal, DEC);
/*
Выводим текст
*/
Serial.print("Кнопка: ");
/*
Если swVal равно "1", кнопка не нежата
*/
if (swVal == HIGH) {
/*
Выводим текст
*/
Serial.println("не нажата");
} else {
/*
Если swVal раво "0" кнопка нажата
*/
Serial.println("нажата");
}
/*
Ждем 500 мкс.
*/
delay(500);
}
Результат
В мониторинг порта, можно увидеть все изменения джойстика и нажатия кнопки.
Спасибо за информацию. Но остался вопрос — что подпружинивает джойстик , и возможно ли самостоятельно убрать «пружину»?
мостбет скачать бесплатно http://www.mostbet1011.com.kg .
мостбет казино войти http://mostbet1004.com.kg .
1 win nigeria http://1win11.com.ng .
мостбет скачать мостбет скачать .
мрстбет https://mostbet1004.com.kg/ .
1win online games http://www.1win11.com.ng .