Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Модуль джойстика ====== ===== Описание ===== Модуль джойстика позволит просто и удобно управлять вашим устройством, будь то робот или пульт управления домашней автоматизацией. В основе модуля находится двухосевой джойстик, способный отклоняться во все стороны. Отклонение джойстика в ту или иную сторону сопровождается изменением аналогового сигнала. В нейтральном положении рукоятки джойстика напряжение на выводах по осям X и Y равно половине напряжения питания модуля. При отклонении джойстика в одну сторону напряжение будет нарастать до напряжения питания (например до 5 В), в противоположную - падать до 0 В. Таким образом можно отслеживать не только сам факт отклонения джойстика, но и реагировать на определенный угол его отклонения. В качестве дополнительного функционала джойстик снабжен встроенной кнопкой. Сигнал с кнопки - цифровой. Для корректной работы кнопки на плате предусмотрен подтягивающий резистор Для крепления модуля джойстика на плате предусмотрены 4 отверстия под винт М3. ==== Технические характеристики ==== * Напряжение питания: 3,3-5 В * Потребляемый ток: 0,25 мА * Тип интерфейса по осям X и Y: аналоговый линейный * Тип интерфейса встроенной кнопки: цифровой ==== Физические размеры ==== * Размеры модуля Д х Ш х В: 34 х 27 х 27 мм ==== Подключение ==== В зависимости от необходимого функционала, модуль джойстика подключается к контроллеру с помощью следующих выводов (выводы могут быть задействованы как все одновременно, так и частично): * **GND** (вывод "земли") - подключается к выводу GND контроллера; * **+5V** (вывод питания) - подключается к выводу питания контроллера 5V (допускается подключение к выводу 3.3V); * **VRx** (вывод значений по оси X) - подключается к аналоговому выводу контроллера; * **VRy** (вывод значений по оси Y) - подключается к аналоговому выводу контроллера; * **SW** (вывод кнопки) - подключается к цифровому выводу контроллера. ===== Смотрите также ===== * [[main:motors:2dof|Управление манипулятором с помощью джойстика]] ===== Примеры подключения и использования ===== **Пример 1:** В примере иллюстрируется подключение модуля джойстика к контроллеру, и определение текущего значения положения рукоятки по осям. Значения выводятся в монитор Serial - порта. (Примеры тестировались на контроллере Smart UNO) ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-dzhoystika|Модуль джойстика]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф мама-мама х3]] | 1 | **Схема подключения:** {{ :main:modules:joystick1.png?nolink |}} **Скетч для загрузки:** <file Arduino> 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 мс } </file> **Пример 2:** В примере иллюстрируется подключение модуля джойстика к контроллеру, и определение текущих значений положения рукоятки по осям . Также проверяется нажатие кнопки джойстика. Значения по осям и нажатия кнопки выводятся в монитор Serial - порта. ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-dzhoystika|Модуль джойстика]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor shield]] | 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф мама-мама х3]] | 1 | **Схема подключения:** {{ :main:modules:joystick.png?nolink |}} **Скетч для загрузки:** <file Arduino> 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 мс } </file>