Джойстик 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: Джойстик