8 (800) 550-13-29
Заказать звонок
Связь с директором
  • Контакты
  • Доставка
  • Оплата
  • База знаний
  • Блог
  • Акции
  • Видео
  • О 3DiY
  • Гос. закупки
  • ...
    3DIY
    3D принтеры
    Всё для 3D принтеров
    • Электроника
      Электроника
    • Механика
      Механика
    • Экструдеры
      Экструдеры
    • Пластик
      Пластик
    • 3D принтеры
      3D принтеры
    • 3D ручки
      3D ручки
    • Сопутствующие
      Сопутствующие
    Arduino/робототехника
    • Arduino
      Arduino
    • Raspberry Pi
      Raspberry Pi
    • Orange Pi
      Orange Pi
    • Одноплатники
      Одноплатники
    • Модули (Shield)
      Модули (Shield)
    • Датчики / Сенсоры
      Датчики / Сенсоры
    • Дисплеи
      Дисплеи
    • Механика
      Механика
    • Макетные платы (Breadboard)
      Макетные платы (Breadboard)
    • Светодиоды
      Светодиоды
    • Провода и кабели
      Провода и кабели
    • Источники питания
      Источники питания
    • Радиодетали
      Радиодетали
    ЧПУ
    • Электроника
      Электроника
    • Электротехника
      Электротехника
    • Электропривод
      Электропривод
    • Направляющие
      Направляющие
    • Передачи
      Передачи
    • Механика
      Механика
    • Конструкционный профиль
      Конструкционный профиль
    • Лазерная резка и аксессуары
      Лазерная резка и аксессуары
    Услуги
    • 3D печать
    • Ремонт 3D принтеров
    Ещё
      3DIY
      3D принтеры
      Каталог
      • 3D принтеры и комплектующие
        3D принтеры и комплектующие
        • Электроника
        • Механика
        • Экструдеры
        • Пластик
        • 3D принтеры
        • 3D ручки
        • Сопутствующие
      • Arduino и робототехника
        Arduino и робототехника
        • Arduino
        • Raspberry Pi
        • Orange Pi
        • Одноплатники
        • Модули (Shield)
        • Датчики / Сенсоры
        • Дисплеи
        • Механика
        • Макетные платы (Breadboard)
        • Светодиоды
        • Провода и кабели
        • Источники питания
        • Радиодетали
      • ЧПУ комплектующие
        ЧПУ комплектующие
        • Электроника
        • Электротехника
        • Электропривод
        • Направляющие
        • Передачи
        • Механика
        • Конструкционный профиль
        • Лазерная резка и аксессуары
      Услуги
      • 3D печать
      • Ремонт 3D принтеров
      Блог
      • 3D-печать
      • 3D-принтеры
      База знаний
      • Датчики
      • Модули
      • Платы
      • 3D-принтеры
      • Дисплеи
      • Механика
      • Сопутствующие
      • ЧПУ
      • Проекты
      • Компоненты
      Информация
      • Акции и Скидки
      • Условия доставки
      • Условия оплаты
      • Сashback
      • О нас
        • Наши партнеры
        • Наши клиенты
        • Вакансии
      • Гос. закупки
      Контакты
      • Как до нас добраться
      Ещё
        3DIY
        • 3D принтеры
        • Каталог
          • Назад
          • Каталог
          • 3D принтеры и комплектующие
            • Назад
            • 3D принтеры и комплектующие
            • Электроника
            • Механика
            • Экструдеры
            • Пластик
            • 3D принтеры
            • 3D ручки
            • Сопутствующие
          • Arduino и робототехника
            • Назад
            • Arduino и робототехника
            • Arduino
            • Raspberry Pi
            • Orange Pi
            • Одноплатники
            • Модули (Shield)
            • Датчики / Сенсоры
            • Дисплеи
            • Механика
            • Макетные платы (Breadboard)
            • Светодиоды
            • Провода и кабели
            • Источники питания
            • Радиодетали
          • ЧПУ комплектующие
            • Назад
            • ЧПУ комплектующие
            • Электроника
            • Электротехника
            • Электропривод
            • Направляющие
            • Передачи
            • Механика
            • Конструкционный профиль
            • Лазерная резка и аксессуары
        • Услуги
          • Назад
          • Услуги
          • 3D печать
          • Ремонт 3D принтеров
        • Блог
          • Назад
          • Блог
          • 3D-печать
          • 3D-принтеры
        • База знаний
          • Назад
          • База знаний
          • Датчики
          • Модули
          • Платы
          • 3D-принтеры
          • Дисплеи
          • Механика
          • Сопутствующие
          • ЧПУ
          • Проекты
          • Компоненты
        • Информация
          • Назад
          • Информация
          • Акции и Скидки
          • Условия доставки
          • Условия оплаты
          • Сashback
          • О нас
            • Назад
            • О нас
            • Наши партнеры
            • Наши клиенты
            • Вакансии
          • Гос. закупки
        • Контакты
          • Назад
          • Контакты
          • Как до нас добраться
        • 8 (800) 550-13-29
        Контактная информация
        Москва, Духовской пер. 17с3   |  Пн-Пт 11.00-19.00 | Сб-Вс Выходные
        info@3d-diy.ru
        • Facebook
        • Вконтакте
        • Instagram
        • YouTube

        Джойстик

        База знаний
        -
        Датчики
        -
        Тактильные
        -Джойстик
        Поделиться
        • Джойстик
        Датчики / Сенсоры
        Перейти в раздел
        Датчики / Сенсоры
        Товары
          • Джойстик
            Быстрый просмотр
            Джойстик
            Предзаказ
            325 руб./шт
            Подробнее
          Arduino джойстик может использоваться как аналоговое устройство управления в вашем проекте. Джойстик имеет кнопку нажатия и две оси перемещения: ось X и ось Y.

          Содержание

          • Обзор тактильного Джойстика
          • Технические характеристики
          • Подключение к Arduino
          • Пример использования
          • Часто задаваемые вопросы

          Обзор тактильного Джойстика

          Джойстик является одним из устройств для удобной передачи информации от человека к компьютеру или микроконтроллеру. Джойстики используются для управления движением роботов, мобильных платформ и прочих механизмов.

          Модуль двухосевого джойстик (рис. 1) имеет две степени свободы, представляет собой ручку, закреплённую на шаровом шарнире с двумя взаимно перпендикулярными осями.

          joystick-01.jpg

          Рисунок 1. Джойстик.

          При наклоне ручки вращаются подвижные контакты каждого из двух потенциометров номиналом 10 кОм, которые определяют положение осей X и Y. Средний контакт каждого потенциометра выведен на контакты VRX и VRY разъема, а крайние подключены к питанию и земле. Также джойстик оснащен тактовой кнопкой, которая срабатывает при вертикальном нажатии на ручку, показания снимаются с контакта SW. После отпускания джойстик возвращается в первоначальное центральное состояние.


          Технические характеристики

          • Напряжение питания: номинальное 3.0…5,5 В;
          • Выходной сигнал: цифровой (кнопка) и аналоговый (оси X и Y);
          • Размеры: 26 мм x 40 мм x 22 мм.

          Подключение к плате Arduino

          Для подключения модуля джойстика к плате Arduino будем использовать два аналоговых и один цифровой вывод Arduino, а также с платы Arduino подаем питание на контакты джойстика GND и +5V. Схема подключения показана на рисунке 2.

          joystick-02.jpg

          Рисунок 2. Схема подключения модуля джойстика к плате Arduino.

          Напишем скетч получения данных с джойстика. Данные с потенциометров по осям X и Y могут принимать значения от 0 до 1023. Неподвижному положению джойстика соответствуют значение 511 для каждого потенциометра. При нажатии на кнопку на входе 3 Arduino будет появляться 0. Чтобы не было наводок, вывод кнопки необходимо подтянуть к +5 В. Данные выводим в последовательный порт.

          Содержимое скетча показано в листинге 1.

          Листинг 1

          
          // пин подключения контакта VRX
          #define PIN_VRX A0
          // пин подключения контакта VRY
          #define PIN_VRY A1
          // пин подключения кнопки
          #define PIN_BUTTON 3
           
          void setup () {
             // запуск последовательного порта
             Serial.begin (9600);             
          }
          
          void loop () {
             // Выводим значение по оси X
             Serial.print("X = ");            
             Serial.println(analogRead(PIN_VRX));      
             // Выводим значение по оси Y
             Serial.print("Y = ");            
             Serial.println(analogRead(PIN_VRY));      
             // Состояние кнопки
             Serial.print("button = ");            
             if (digitalRead(PIN_BUTTON) == HIGH) {  
                Serial.println ("NOT CLICK");  
             }
             else {  
                Serial.println ("CLICK!");     
             }
             // Пауза 1 сек
             delay (1000);                       
          }
          

          Загружаем скетч на плату Arduino, открываем монитор последовательного порта и видим вывод данных при изменении положения джойстика (рис. 3).

          joystick-03.jpg

          Рисунок 3. Вывод данных с джойстика в монитор последовательного порта.


          Пример использования

          Рассмотрим пример использования джойстика для управления подвесом для камеры на сервоприводах. Нам потребуются следующие детали:

          • плата Arduino Uno – 1 шт;
          • плата прототипирования – 1 шт;
          • модуль джойстика – 1 шт;
          • сервопривод – 2 шт;
          • подвес для камеры – 1 шт;
          • блок питания 5В – 1 шт;
          • провода.

          Схема подключения показана на рисунке 4.

          joystick-04.jpg

          Рисунок 4. Схема подключения модуля джойстика и подвеса на сервоприводах к плате Arduino.

          Считываем показания джойстика для каждой из осей X, Y и переводим их в значение угла поворота соответствующего сервопривода. Чтобы убрать дрожание сервопривода не реагируем на маленькие изменения положения джойстика.

          Содержимое скетча показано в листинге 2.

          Листинг 2

          // подключение библиотеки Servo
          #include <Servo.h> 
           
          // пины подключения сервоприводов
          #define PIN_SERVO_X 9
          #define PIN_SERVO_Y 10
          // пин подключения контакта VRX
          #define PIN_VRX A0
          // пин подключения контакта VRY
          #define PIN_VRY A1
          // пин подключения кнопки
          #define PIN_BUTTON 3
          
          // создание объектов Servo
          Servo servoX;  
          Servo servoY;  
          // служебные переменные
          int joyXpr=0; 
          int joyYpr=0; 
          int joyX, joyY; 
          int angleX, angleY; 
           
          void setup() { 
             // запуск последовательного порта
             Serial.begin (9600);             
             // подключить управление сервоприводом к пинам
             // PIN_SERVO_X и PIN_SERVO_Y
             servoX.attach(PIN_SERVO_X);  
             servoY.attach(PIN_SERVO_Y); 
          } 
          
          void loop () {
             // получение данных с джойстика
             joyX=analogRead(PIN_VRX);
             joyY=analogRead(PIN_VRY);
             // Выводим значение по оси X
             Serial.print("X = ");            
             Serial.print(joyX);      
             // Выводим значение по оси Y
             Serial.print("  Y = ");            
             Serial.println(joyY);      
             // сравнение с предыдущими
             if(abs(joyX-joyXpr)>10) { // повернуть по оси X
                 angleX=map(joyX,0,1023,0,180);
                 servoX.write(angleX);              
                 // время на перемещение сервопривода
                 delay(15); 
             }
             if(abs(joyY-joyYpr)>10) { // повернуть по оси Y
                 angleY=map(joyY,0,1023,0,180);
                 servoY.write(angleY);              
                 // время на перемещение сервопривода
                 delay(15); 
             }
             joyXpr=joyX;
             joyYpr=joyY;
          }
          

          Загружаем скетч на плату Arduino, и управляем подвесом с помощью джойстика.

          joystick-05.jpg

          joystick-06.jpg

          Рисунок 5-6. Схема в сборе.


          Часто задаваемые вопросы

          1. Не изменяются данные на аналоговых выводах Arduino при изменении положения джойстика.
          Проверьте правильность подключения джойстика к плате Arduino.

          2. Значение кнопки джойстика принимает случайные значения или не изменяется тока отрицательное
          • Проверьте правильность подключения джойстика к плате Arduino.
          • Подтяните вывод кнопки к питанию через резистор 4.7 кОм.

           



          Документы
          joystick_listing_01.ino 599 байт
          joystick_listing_02.ino 885 байт

          Товары
            • Джойстик
              Быстрый просмотр
              Джойстик
              Предзаказ
              Подробнее

            Назад к списку Следующий проект
            Компания
            О компании
            Политика
            Услуги
            Партнеры
            Клиенты
            Информация
            Акции и скидки
            Условия оплаты
            Условия доставки
            Гарантия на товар
            Кэшбэк
            Как купить
            Вопрос-ответ
            Блог
            База знаний
            Производители
            Будьте всегда в курсе!
            Узнавайте о скидках и акциях первым
            Оставайтесь на связи
            • Вконтакте
            • Facebook
            • Instagram
            • YouTube
            Наши контакты
            8 (800) 550-13-29
            info@3d-diy.ru
            Москва, Духовской пер. 17с3   |  Пн-Пт 11.00-19.00 | Сб-Вс Выходные
            2021 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники