СОДЕРЖАНИЕ ►
Подключение джойстика к Arduino позволит сделать дистанционное управление с помощью джойстика машинкой или роботом на Ардуино. Рассмотрим в статье, как подключить джойстик шилд самостоятельно и сделать управление светодиодами с помощью джойстика на Ардуино. Представим несколько скетчей и дадим схему подключения джойстика к микроконтроллеру Arduino Nano или Arduino Uno.
Джойстик схема подключения к Ардуино
Аналоговый джойстик представляет собой ручку, которая крепится на шарнире с двумя потенциометрами, определяющими положение джойстика по оси X и Y, и кнопкой Z. Наклон ручки вращает потенциометры и изменяет выходное напряжение, позволяя отследить степень отклонения ручки от центральной точки. При отпускании ручки джойстика, она плавно возвращается в центральное (нулевое) положение.

У модуля джойстика KY-023 есть свои недостатки. Дело в том, что ручка джойстика не всегда точно возвращается в центральное положение, поэтому следует учитывать в программе центральное положение ручки, как некоторый диапазон значений, а не точное значение. То есть, при положении ручки джойстика в центре, значение X и Y координат может находиться в диапазоне от 490 до 530, вместо 512.
Подключение джойстика к Arduino UNO
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- модуль джойстика ky-023;
- 2 светодиода и 2 резистора;
- макетная плата;
- провода «папа-мама», «папа-папа».

После подключения к Ардуино джойстика, загрузите следующий скетч. В данном примере на монитор порта будут выводиться данные с джойстика, а при нажатии кнопки будет выключаться светодиод на плате, подключенный параллельно к Pin 13. Соберите схему с джойстиком на Arduino Uno, как показано на схеме выше, загрузите скетч и откройте монитор порта программы Arduino IDE на компьютере.
Скетч. Подключение джойстика к Ардуино
#define pinX A2 // ось X джойстика #define pinY A1 // ось Y джойстика #define swPin 2 // кнопка джойстика #define ledPin 13 // светодиод на Pin 13 void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(pinX, INPUT); pinMode(pinY, INPUT); pinMode(swPin, INPUT); digitalWrite(swPin, HIGH); } void loop() { boolean ledState = digitalRead(swPin); // считываем состояние кнопки digitalWrite(ledPin, ledState); // вкл./выкл. светодиод int X = analogRead(pinX); // считываем значение оси Х int Y = analogRead(pinY); // считываем значение оси Y Serial.print(X); // выводим в Serial Monitor Serial.print("\t"); // табуляция Serial.println(Y); }
Скетч. Управление джойстиком светодиодами
Теперь можно усложнить схему, сделав плавное включение светодиода, управляемое от джойстика. Для этого подключите два светодиода через резистор к аналоговым портам 5 и 6. В следующем скетче, с помощью функции map(), переменные X и Y преобразуются из диапазона чисел от 0 до 1023 в диапазон чисел от 0 до 255. Подключите светодиоды к пинам 5 и 6 Ардуино и загрузите следующий скетч.
#define pinX A2 // ось X джойстика #define pinY A1 // ось Y джойстика #define swPin 2 // кнопка джойстика #define ledPin 13 // светодиод на Pin 13 #define ledX 5 // светодиод на Pin 5 #define ledY 6 // светодиод на Pin 6 void setup() { pinMode(ledX, OUTPUT); pinMode(ledY, OUTPUT); pinMode(ledPin, OUTPUT); pinMode(pinX, INPUT); pinMode(pinY, INPUT); pinMode(swPin, INPUT); digitalWrite(swPin, HIGH); } void loop() { boolean ledState = digitalRead(swPin); // считываем состояние кнопки digitalWrite(ledPin, ledState); // вкл./выкл. светодиод int X = analogRead(pinX); // считываем значение оси Х int Y = analogRead(pinY); // считываем значение оси Y X = map(X, 0, 1023, 0, 255); // преобразуем значение X в другой диапазон Y = map(Y, 0, 1023, 0, 255); // преобразуем значение Y в другой диапазон analogWrite(ledX, X); // включаем светодиоды с разной яркостью analogWrite(ledY, Y); }
Пояснения к коду:
- с помощью функции
map()можно задать любой, в том числе, обратный диапазон чисел. Также можно использовать отрицательные значения.
Заключение. Мы рассмотрели схему подключения джойстика к Arduino и несколько вариантов управления светодиодами от микроконтроллера. Как вы убедились сами, что работа с джойстиком Ардуино доступна любому начинающему мейкеру, так как принцип работы модуля ky-023 схож с простым потенциометром. Данный модуль может использоваться во многих интересных DIY проектах.










Почему нету схемы подключения для того, чтобы управлять светодиодами джойстиком? Неприятно.👎♓