Два джойстика ардуино

Содержание

Два джойстика ардуино

Один из подписчиков решил сделать привод для телескопа, и попросил меня помочь с написанием скетча.

Раз уж скетч написан, то будет не лишним рассказать что для этого понадобится, и предоставить схему для сборки устройства.

Так выглядит устройство для управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.

Для его сборки понадобится:

Плата Arduino UNO, модуль двух осевой джойстик, два униполярных шаговых двигателя 28BYJ-48 5V, два драйвера на базе микросхемы ULN2003 и соединительные провода.

Загрузите на плату Arduino UNO этот скетч.

В скетче есть 4 настройки!

Переменная t12 отвечает за скорость вращения первого шагового двигателя при первоначальном отведении джойстика.

Переменная t11 отвечает за скорость вращения первого шагового двигателя при отведении джойстика в крайнее положение.

Переменная t22 отвечает за скорость вращения второго шагового двигателя при первоначальном отведении джойстика.

Переменная t21 отвечает за скорость вращения второго шагового двигателя при отведении джойстика в крайнее положение.

Чем больше значение этих переменных тем медленнее скорость вращения шагового двигателя!

//Начало скетча Копировать этот код

//Конец скетча

После настройки и загрузки скетча соберите все согласно этой схемы.

Проверьте! И если все верно, то можете подключить устройство к блоку питания, павербанку или USB компьютера.

Так как устройство в режиме вращения вала шагового двигателя потребляет около 350 миллиампер, то источник питания должен быть минимум на 500 миллиампер.

Чтобы инвертировать направление вращения вала шагового двигателя:

Поменяйте местами контакты 5, 6 или 4, 7 для 1 шагового двигателя.

Поменяйте местами контакты 11, 12 или 10, 13 для 2 шагового двигателя.

Чтобы поменять местами оси X, Y поменяйте местами контакты A0, A1.

Источник

Как подключить джойстик к Arduino

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

Инструкция по подключению аналогового джойстика к Arduino

Для проекта нам понадобится:

  • Arduino (или совместимая плата);
  • двухосевой джойстик;
  • 3 резистора номиналом 220 Ом;
  • 1 RGB (например, таких) или 3 обычных светодиода (вот таких); можно воспользоваться готовым модулем, который содержит необходимые резисторы и удобные выводы для подключения к Arduino.

1 Принцип действия аналогового джойстика

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

Аналоговый джойстик, который мы сегодня рассмотрим, представляет собой ручку, закреплённую на шаровом шарнире с двумя взаимно перпендикулярными осями. При наклоне ручки, ось вращает подвижный контакт потенциометра, благодаря чему изменяется напряжение на его выходе. Также аналоговый джойстик имеет тактовую кнопку, которая срабатывает при вертикальном надавливании на ручку.

Принципиальная схема аналогового джойстика

Здесь outX, outY – выходы для снятия показаний по осям X и Y; outSw – вывод тактовой кнопки. Vcc и GND – питание и земля, соответственно.

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

Подключим джойстик по приведённой схеме. Аналоговые выходы X и Y джойстика подключим к аналоговым входам A1 и A2 Arduino, выход кнопки SW – к цифровому входу 8. Питание джойстика осуществляется напряжением +5 В.

Схема подключения аналогового джойстика к Arduino

В результате должно получиться примерно так, как на фотографии.

Аналоговый джойстик, подключённый к Arduino

3 Считывание показаний с аналогового джойстика

Для того чтобы наглядно увидеть, как работает джойстик, напишем такой скетч.

Значения X и Y с аналогового джойстика,
выведенные в монитор последовательного порта

Объявим пины, зададим им режимы работы. Обратите внимание, в процедуре setup() мы подали на вход switchPin высокий уровень. Этим мы включили встроенный подтягивающий резистор на этом порту. Если его не включить, то, когда кнопка джойстика не нажата, 8-ой порт Arduino будет висеть в воздухе и ловить наводки. Это повлечёт за собой нежелательные хаотичные ложные срабатывания.

В процедуре loop() мы постоянно опрашиваем состояние кнопки и отображаем его с помощью светодиода на выходе 13. Из-за того, что вход switchPin подтянут к питанию, светодиод постоянно горит, а при нажатии кнопки гаснет, а не наоборот.

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

4 Управление яркостью и цветом светодиодас помощью аналогового джойстика и Arduino

Обычно джойстик используют для управления электродвигателями. Но почему бы не использовать его, например, для управления яркостью светодиода? Давайте подключим по приведённой схеме RGB светодиод (или три обычных светодиода) к цифровым портам 9, 10 и 11 Arduino, не забывая, конечно, о резисторах.

Подключение RGB светодиода и джойстика к Arduino

Будем менять яркость соответствующих цветов при изменении положения джойстика по осям, как показано на рисунке.

Из-за того, что джойстик может быть не точно отцентрирован производителем и иметь середину шкалы не на отметке 512, а варьироваться в диапазоне примерно от 490 до 525, то светодиод может слегка светиться даже когда джойстик находится в нейтральном положении. Если вы хотите, чтобы он был полностью выключен, то внесите в программу соответствующие поправки.

Диаграмма распределения яркости красного, синего и зелёного каналов светодиода в зависимости от положения ручки джойстика

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

Сначала объявим соответствие пинов и две переменные – ledOn и prevSw – для работы с кнопкой. В процедуре setup() назначим пинам функции и подключим к пину кнопки подтягивающий резистор командой digitalWrite(swPin, HIGH).

В цикле loop() определяем нажатие кнопки джойстика. При нажатии на кнопку переключаем режимы работы между режимом «фонарика» и режимом «цветомузыки».

В режиме freeMode() управляем яркостью светодиодов с помощью наклона джойстика в разные стороны: чем сильнее наклон по оси, тем ярче светит соответствующий цвет. Причём преобразование значений берёт на себя функция map(значение, отНижнего, отВерхнего, кНижнему, кВерхнему).

Функция map() очень полезна и удобна в применении. Она переносит измеренные значения (отНижнего, отВерхнего) по осям джойстика в желаемый диапазон яркости (кНижнему, кВерхнему). Можно то же самое сделать обычными арифметическими действиями, но запись с помощью функции map() существенно короче.

В режиме discoMode() три цвета попеременно набирают яркость и гаснут. Чтобы можно было выйти из цикла при нажатии кнопки, каждую итерацию проверяем, не была ли нажата кнопка.

В результате получился фонарик из трёхцветного RGB светодиода, яркость свечения каждого цвета которого задаётся с помощью джойстика. А при нажатии на кнопку происходит включение режима «цветомузыка». Я сделал специальную печатную плату с Arduino Pro Mini и джойстиком, и у меня он используется в качестве ночника для ребёнка :)

Управление яркостью и цветом RGB светодиода с помощью аналогового джойстика, подключённого к Arduino

Таким образом, мы научились подключать к Arduino аналоговый двухосевой джойстик с кнопкой и считывать с него показания. Вы можете придумать и реализовать более интересное применение джойстику, чем наш пример.

Источник

Как подключить джойстик к Ардуино

Подключение джойстика к Arduino позволит сделать дистанционное управление с помощью джойстика машинкой или роботом на Ардуино. Рассмотрим в статье, как подключить джойстик шилд самостоятельно и сделать управление светодиодами с помощью джойстика на Ардуино. Представим несколько скетчей и дадим схему подключения джойстика к микроконтроллеру Arduino Nano или Arduino Uno.

Джойстик схема подключения к Ардуино

Аналоговый джойстик представляет собой ручку, которая крепится на шарнире с двумя потенциометрами, определяющими положение джойстика по оси X и Y, и кнопкой Z. Наклон ручки вращает потенциометры и изменяет выходное напряжение, позволяя отследить степень отклонения ручки от центральной точки. При отпускании ручки джойстика, она плавно возвращается в центральное (нулевое) положение.

Как подключить джойстик к Arduino Nano и Arduino Uno

У модуля джойстика 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 на компьютере.

Скетч. Подключение джойстика к Ардуино

Скетч. Управление джойстиком светодиодами

Теперь можно усложнить схему, сделав плавное включение светодиода, управляемое от джойстика. Для этого подключите два светодиода через резистор к аналоговым портам 5 и 6. В следующем скетче, с помощью функции map(), переменные X и Y преобразуются из диапазона чисел от 0 до 1023 в диапазон чисел от 0 до 255. Подключите светодиоды к пинам 5 и 6 Ардуино и загрузите следующий скетч.

Пояснения к коду:

  1. с помощью функции map() можно задать любой, в том числе, обратный диапазон чисел. Также можно использовать отрицательные значения.

Заключение. Мы рассмотрели схему подключения джойстика к Arduino и несколько вариантов управления светодиодами от микроконтроллера. Как вы убедились сами, что работа с джойстиком Ардуино доступна любому начинающему мейкеру, так как принцип работы модуля ky-023 схож с простым потенциометром. Данный модуль может использоваться во многих интересных DIY проектах.

Источник

Управление сервоприводом джойстиком Ардуино

Как подключить к Ардуино сервопривод с джойстиком и написать программу для управления сервоприводом джойстиком от Arduino Uno рассмотрим в этом обзоре. Мы уже рассказывали, как управлять светодиодами с помощью модуля джойстика ky-023 и в данном примере скетч для микроконтроллера будет практически таким же, за одним небольшим исключением. А что изменилось в программе — читайте далее.

Управление сервоприводом джойстиком Ардуино

Для того, чтобы сделать управление сервомотора с помощью джойстика, необходимо первым делом подключить к аналоговым входам платы Arduino модуль ky-023. Это необходимо, чтобы АЦП микроконтроллера получало данные о положении джойстика по координатам X и Y в режиме реального времени. Затем, с помощью строчек кода, эти данные мы преобразуем в соответствующее положение микро сервопривода.

Джойстик представляет собой два потенциометра, которые меняют сопротивление в электрической цепи при изменении положения ручки. Поэтому на аналоговых входах Ардуино, куда мы подключим джойстик, будут цифровые значения от 0 до 1023, т.е. АЦП микроконтроллера преобразует значения напряжения от 0 до 5 Вольт в цифровые значения. Именно эти значения мы будем использовать для управления серво.

Как подключить к Ардуино серво с джойстиком

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • микро сервопривод;
  • джойстик ky-023;
  • провода «папа-папа», «папа-мама».

Подключите к плате Ардуино сервомотор и джойстик, согласно схеме, изображенной на картинке выше. И загрузите следующий скетч в микроконтроллер, позволяющий сделать плавное управление сервоприводом с помощью джойстика на Ардуино. В программе мы используем функцию map(), которая преобразует числовой диапазон значений 0-1023, в новый диапазон чисел 0-180 (угол поворота серво).

Скетч. Управление сервоприводом с помощью джойстика

Пояснения к коду:

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

Скетч. Управление двумя серво с помощью джойстика

Пояснения к коду:

  1. в данной программе мы лишь добавили новую локальную переменную int Y; для значений оси Y джойстика, чтобы управлять вторым серво.

Заключение. Таким образом, мы подробно рассмотрели, как используется Ардуино джойстик в управлении одним и двумя сервоприводами. Полученную информацию вы можете использовать для создания простых мини роботов на Arduino или машинок с дистанционным управлением от джойстика. Если у вас остались еще вопросы по рассмотренной теме — вы можете оставить их в комментариях под этой записью.

Источник

Adblock
detector