Джойстик PS2
Описание
Модуль-джойстик сочетает в себе двухосный джойстик и тактовую кнопку. Показатели перемещения джойстика по осям передаются в виде аналогового сигнала, показатели кнопки - в виде цифрового. Оси представляют собой резисторы 10 кОм, при перемещении рукоятки по ним меняется сопротивление. Считывая уровень сигнала можно понять положение джойстика (среднее положение ~2,5 В), которое при вращении меняется от 0 до 5 В. Джойстик подойдет для проектов постепенного/ускоренного изменения значений, управления объектами (роботами и др), как игровая консоль для управления в играх и прочих разработок.
Физические размеры
- Модуль (Д х Ш х В): 39 х 26 х 35 мм
Плюсы использования
- Прост в подключении
- Имеет встроенную кнопку (для дополнительного элемента при управлении)
Минусы использования
- За счет отсутствия резистора, при использовании кнопки, потребуется добавлять в цепь резистор
Примеры подключения и использования
Пример 1: В примере иллюстрируется подключение модуля джойстика к контроллеру, и определение текущего значения положения рукоятки по осям. Значения выводятся в монитор Serial - порта. (Примеры тестировались на контроллере Smart UNO)
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Джойстик PS2 | 1 |
Провода папа-мама | 4 |
Скетч для загрузки:
const int the_X_axis = 0; // подключение оси X к аналоговому порту 0 const int the_Y_axis = 1; // подключение оси Y к аналоговому порту 1 int value_X = 0; // хранение значения оси Х int value_Y = 0; // хранения значения оси Y void setup() { Serial.begin(9600); } void loop() { value_X = analogRead(the_X_axis); // Считать аналоговое значение Х Serial.print("X:"); Serial.print(value_X); // Вывести значение в монитор Serial порта value_Y = analogRead(the_Y_axis); // Считать аналоговое значение Y Serial.print(" Y:"); Serial.println(value_Y); // Вывести значение в монитор Serial порта delay(250); // Задержка 250 мс }
Пример 2: В примере иллюстрируется подключение модуля джойстика к контроллеру, и определение текущих значений положения рукоятки по осям . Также проверяется нажатие кнопки джойстика. Значения по осям и нажатия кнопки выводятся в монитор Serial - порта. (Примеры тестировались на контроллере Genuino UNO)
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Джойстик PS2 | 1 |
Провода папа-мама | 5 |
Провода папа-папа | 3 |
Резистор 10 кОм | 1 |
Макетная плата мини | 1 |
Скетч для загрузки:
const int the_X_axis = 0; // подключение оси X к аналоговому порту 0 const int the_Y_axis = 1; // подключение оси Y к аналоговому порту 1 const int button = 8; // подключение кнопки джойстика int value_X = 0; // хранение значения оси Х int value_Y = 0; // хранения значения оси Y int buttonValue = 0; // значение нажатия кнопки void setup() { pinMode(buttonValue, INPUT); // Задаем как вход пин кнопки Serial.begin(9600); } void loop() { value_X = analogRead(the_X_axis); // Считать аналоговое значение Х Serial.print("X:"); Serial.print(value_X); // Вывести значение в монитор Serial порта value_Y = analogRead(the_Y_axis); // Считать аналоговое значение Y Serial.print(" Y:"); Serial.print(value_Y); // Вывести значение в монитор Serial порта buttonValue = digitalRead(button); // Считываем цифровое значение оси Z (кнопка) buttonValue = !buttonValue; // Инвертируем значение Serial.print(" button: "); Serial.println(buttonValue); // Вывести значение в монитор Serial порта delay(250); // Задержка 250 мс }