Джойстик 5 каналов
Двухкоординатный джойстик – это удобный модуль манипулятор, позволяющий управлять различными устройствами (шасси, роботами). С его помощью можно управлять движением в двух осях Х и Y.
Модуль двухосевого джойстика состоит из двух потенциометров на 10 кОм, определяющие положение осей X и Y изменение сопротивления осуществляется рычагом. Средняя нога каждого потенциометра выведена на разъем (контакты VRX и VRY), а вторая и третья нога подключена к питанию и массе. Дополнительно установлена тактовая кнопка, показания снимаются с контакта SW, так же предусмотрено посадочное место для подтягивающего резистора (R5).
Схема подключения джойстика 5 каналов
На изображении ниже представлена схема подключения джойстика.

Код для подключения джойстика 5 каналов
В примере ниже показано, как подключить вывод джойстика 5 каналов к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).
const int Y_PIN = 2; // подключение оси Y джойстика к аналоговому пину 2 const int X_PIN = 1; // подключение оси X джойстика к аналоговому пину 1 const int BUTTON_PIN = 8; // подключение кнопки к цифровому пину 8 float stepSize = 180 / 1024; // вычисление шага: деление градусов на градацию // Угол поворота джойстика равен 180 градусов, АЦП (аналого цифровой преобразователь)выдает значения от 0 до 1023, всего 1024 градации void setup() { Serial.begin(9600); // инициализация монитора порта } void loop() { int yVal = analogRead(Y_PIN); // введение переменной yVal для считывания показаний аналогового значения по оси Y int xVal = analogRead(X_PIN); // введение переменной xVal для считывания показаний аналогового значения по оси Х float yAngle = yVal * stepSize; // конвертирование выходных данных yVal в угол наклона джойстика (от 0 до 180 градусов) float xAngle = xVal * stepSize; // конвертирование выходных данных yVal в угол наклона джойстика (от 0 до 180 градусов) boolean isNotClicked = digitalRead(BUTTON_PIN); // считывание информации о клике на джойстик Serial.print("Горизонтальный угол = "); // вывод текста Serial.println(xAngle); // значение угла по оси X Serial.print("Вертикальный угол = "); Serial.println(yAngle); // значение угла по оси Y if (!isNotClicked) // если происходит нажатие на джойстик, то выводить текст в монитор порта { Serial.println("Нажатие джойстика"); } delay(1000); // задержка 1 секунда }
Скачать файл с кодом, формат .INO: Джойстик