Как да свържете джойстик към Arduino

Съдържание:

Как да свържете джойстик към Arduino
Как да свържете джойстик към Arduino

Видео: Как да свържете джойстик към Arduino

Видео: Как да свържете джойстик към Arduino
Видео: Подключение джойстика к Arduino 2024, Ноември
Anonim

Има голямо разнообразие от начини за прехвърляне на информация от човек към микроконтролер или компютър и един от тях използва джойстик. Нека да видим как да свържете аналогов джойстик с две оси и бутон към Arduino.

Джойстик с две оси и копче
Джойстик с две оси и копче

Необходимо е

  • - Arduino;
  • - двуосен джойстик;
  • - 3 резистора с номинална стойност 220 Ohm;
  • - 1 RGB или 3 конвенционални светодиода.

Инструкции

Етап 1

Джойстикът е удобно и лесно за използване устройство за предаване на информация. Има голям брой видове джойстици по отношение на броя на степени на свобода, принципа на четене на индикациите и използваните технологии. Джойстиците най-често се използват за управление на движението на всякакви механизми, контролирани модели, роботи. Аналоговият джойстик, който ще разгледаме днес, е дръжка, прикрепена към сферична става с две взаимно перпендикулярни оси. Когато копчето е наклонено, оста завърта подвижния контакт на потенциометъра, поради което напрежението на изхода му се променя. Също така аналоговият джойстик има бутон за такт, който се задейства при вертикално натискане на дръжката.

Схематична диаграма на джойстика
Схематична диаграма на джойстика

Стъпка 2

Свържете джойстика според схемата по-долу. Свържете аналоговите изходи X и Y на джойстика към аналогови входове A1 и A2 на Arduino, изхода на бутона SW към цифров вход 8. Джойстикът се захранва от напрежение +5 V.

Схема на свързване на джойстика за Arduino
Схема на свързване на джойстика за Arduino

Стъпка 3

За да видим ясно как работи джойстика, нека напишем такава скица. Нека декларираме щифтовете, зададем режимите на работа за тях. Забележете, че в процедурата за настройка (), ние поставихме входа switchPin на високо ниво. Това позволява вградения издърпващ резистор на този порт. Ако не го включите, тогава, когато бутонът на джойстика не бъде натиснат, осмият порт на Arduino ще виси във въздуха и ще хваща пикапи. Това ще доведе до нежелани, хаотични фалшиви положителни резултати.

В процедурата loop () непрекъснато анкетираме състоянието на бутона и го показваме с помощта на светодиода на изход 13. Поради издърпването на входа switchPin, светодиодът е постоянно включен и при натискане на бутона изгасва, а не обратното.

След това четем показанията на двата потенциометра на джойстика - изхода на осите X и Y. Arduino има 10-битов ADC, така че стойностите, отчетени от джойстика, са в диапазона от 0 до 1023. В средната позиция на джойстика, както можете да видите на илюстрацията, стойностите в областта 500 са около средата на диапазона.

Скица за демонстрация на работата на джойстика
Скица за демонстрация на работата на джойстика

Стъпка 4

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

Джойстик и RGB LED схема за свързване към Arduino
Джойстик и RGB LED схема за свързване към Arduino

Стъпка 5

Ще променим яркостта на съответните цветове, когато сменим позицията на джойстика по осите, както е показано на фигурата. Поради факта, че джойстикът може да не е точно центриран от производителя и да има средата на скалата не около 512, а от 490 до 525, светодиодът може да светне леко дори когато джойстикът е в неутрално положение. Ако искате да бъде напълно изключен, направете съответните изменения в програмата.

Диаграма на разпределението на яркостта на каналите R, G, B по осите X и Y
Диаграма на разпределението на яркостта на каналите R, G, B по осите X и Y

Стъпка 6

Въз основа на горната схема ще напишем скица на Arduino за управление на яркостта на RGB LED с помощта на джойстик.

Първо ще декларираме съответствието на щифтовете и две променливи - ledOn и prevSw - за работа с бутона. В процедурата за настройка () задайте функциите на щифтовете и свържете издърпващия резистор към щифта на бутона с командата digitalWrite (swPin, HIGH).

В цикъла () определяме натискането на бутона на джойстика. Когато натиснете бутона, ние превключваме режимите на работа между режима "фенерче" и режим "цветна музика".

В режим freeMode () яркостта на светодиодите се контролира чрез накланяне на джойстика в различни посоки: колкото по-силно е накланянето по оста, толкова по-ярко свети съответният цвят. Освен това преобразуването на стойности се поема от функцията map (value, fromLower, fromUpper, toLower, toUpper). Функцията map () прехвърля измерените стойности (от Ниска, Висока) по осите на джойстика в желания диапазон на яркост (към Ниска, Висока). Можете да направите същото с обикновените аритметични операции, но това обозначение е много по-кратко.

В режим discoMode () три цвята последователно придобиват яркост и изгасват. За да можем да излезем от цикъла при натискане на бутона, проверяваме всяка итерация, за да видим дали бутонът е бил натиснат.

Скица за управление на яркостта на светодиода с помощта на аналогов джойстик
Скица за управление на яркостта на светодиода с помощта на аналогов джойстик

Стъпка 7

Резултатът е фенерче, изработено от трицветен RGB светодиод, яркостта на всеки цвят от който се настройва с помощта на джойстик. И когато натиснете бутона, се активира режимът "цветна музика". Въпреки че го използвам, напротив, като нощна лампа.

По този начин научихме как да свържем аналогов двуосов джойстик с бутон към Arduino и да четем показания от него. Можете да измислите и приложите по-интересно използване на джойстика от нашия пример.

Препоръчано: