Модуль джойстика позволит просто и удобно управлять вашим устройством, будь то робот или пульт управления домашней автоматизацией.
В основе модуля находится двухосевой джойстик, способный отклоняться во все стороны. Отклонение джойстика в ту или иную сторону сопровождается изменением аналогового сигнала. В нейтральном положении рукоятки джойстика напряжение на выводах по осям X и Y равно половине напряжения питания модуля. При отклонении джойстика в одну сторону напряжение будет нарастать до напряжения питания (например до 5 В), в противоположную - падать до 0 В. Таким образом можно отслеживать не только сам факт отклонения джойстика, но и реагировать на определенный угол его отклонения.
В качестве дополнительного функционала джойстик снабжен встроенной кнопкой. Сигнал с кнопки - цифровой. Для корректной работы кнопки на плате предусмотрен подтягивающий резистор
Для крепления модуля джойстика на плате предусмотрены 4 отверстия под винт М3.
В зависимости от необходимого функционала, модуль джойстика подключается к контроллеру с помощью следующих выводов (выводы могут быть задействованы как все одновременно, так и частично):
Пример 1: В примере иллюстрируется подключение модуля джойстика к контроллеру, и определение текущего значения положения рукоятки по осям. Значения выводятся в монитор Serial - порта. (Примеры тестировались на контроллере Smart UNO)
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Модуль джойстика | 1 |
Sensor shield | 1 |
Шлейф мама-мама х3 | 1 |
Схема подключения:
Скетч для загрузки:
const int the_X_axis = A0; // подключение оси X к аналоговому порту 0
const int the_Y_axis = A1; // подключение оси 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 - порта.
Что нужно | Кол-во, шт |
---|---|
Контроллер Smart UNO | 1 |
Модуль джойстика | 1 |
Sensor shield | 1 |
Шлейф мама-мама х3 | 1 |
Схема подключения:
Скетч для загрузки:
const int the_X_axis = A0; // подключение оси X к аналоговому порту 0
const int the_Y_axis = A1; // подключение оси 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 мс
}