Совет 1: как подключить джойстик к arduino

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

Совет 1: как подключить джойстик к arduino

Вопрос «какой приобрести планшет?» — 3ответа
Вам пригодится

  • — Arduino;
  • — двухосевой джойстик;
  • — 3 резистора номиналом 220 Ом;
  • — 1 RGB либо 3 простых светодиода.

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

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

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

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

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

Это повлечёт за собой нежелательные хаотичные фальшивые срабатывания.В процедуре loop() мы всегда опрашиваем состояние кнопки и отображаем его посредством светодиода на выходе 13. По причине того, что вход switchPin подтянут к питанию, светодиод всегда горит, а при нажатии кнопки меркнет, а не наоборот. Потом мы считываем показания двух потенциометров джойстика — выхода осей X и Y. Arduino имеет 10-разрядные АЦП, исходя из этого значения, снимаемые с джойстика, лежат в диапазоне от 0 до 1023.

В среднем положении джойстика, как видно на иллюстрации, снимаются значения в районе 500 — приблизительно середина диапазона.

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

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

Если вы желаете, дабы он был полностью отключён, то внесите в программу соответствующие поправки.

6
Ориентируясь на приведённую диаграмму, напишем скетч управления Arduino яркостью RGB светодиода посредством джойстика. Сперва заявим соответствие пинов и две переменные — ledOn и prevSw — для работы с кнопкой.

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

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

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

7
В следствии оказался фонарик из трёхцветного RGB светодиода, яркость свечения каждого цвета которого задаётся посредством джойстика. А при нажатии на кнопку происходит включение режима цветомузыка. Не смотря на то, что у меня он употребляется, напротив, в качестве ночника.Так, мы обучились подключать к Arduino аналоговый двухосевой джойстик с кнопкой и считывать с него показания.

Вы имеете возможность придумать и реализовать более увлекательное использование джойстику, чем отечественный пример.

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


Темы которые будут Вам интересны: