- Потребан материјал
- Кружни дијаграм
- Модул џојстика
- Код и објашњење
- Контрола ЛЕД диода помоћу џојстика са Ардуином
Прва ствар која нам падне на памет слушајући реч џојстик је контролер игре. Да, потпуно је исти и може се користити у играчке сврхе. Осим у играма, има још много примена у „уради сам“ електроници. Овај џојстик није ништа друго до комбинација два потенциометра за Кс и И равнину. Очитава напон кроз потенциометар и даје аналогну вредност Ардуину, а аналогна вредност се мења док померамо осовину џојстика (што је једноставно показивач потенциометра).
У овом кругу повезујемо џојстик са Ардуином једноставно контролишући четири ЛЕД-а према кретању џојстика. Поставили смо 4 ЛЕД диоде на такав начин да представља правац кретања осовине џојстика. Овај џојстик такође има тастер који се може користити у разне друге сврхе или може остати неактиван. Једна ЛЕД диода је такође причвршћена на прекидач џојстика, пошто се дугме џојстика притиснуто те појединачне ЛЕД лампице УКЉУЧУЈЕ.
Потребан материјал
- Ардуино УНО
- Модул џојстика
- ЛЕД-5
- Отпорник: 100охм-3
- Повезивање жица
- Бреадбоард
Кружни дијаграм
Модул џојстика
Јоистицкс су доступни у различитим облицима и величинама. Типични модул џојстика приказан је на доњој слици. Овај модул џојстика обично даје аналогне излазе, а излазни напони које пружа овај модул непрестано се мењају у складу са смером у којем га померамо. А смер кретања можемо добити тумачењем ових промена напона помоћу неког микроконтролера. Претходно смо повезали џојстик са АВР-ом и Распберри Пи-ом.
Овај модул џојстика има две осе као што видите. Они су оса Кс и оса И. Свака оса ЈОИСТИЦК-а је постављена на потенциометар или пот. Средње тачке ових лонаца се истискују као Рк и Ри. Дакле, Рк и Ри су променљиве тачке на ове лонце. Када је џојстик у стању приправности, Рк и Ри делују као делитељ напона.
Када се џојстик помера дуж водоравне осе, напон на Рк пину се мења. Слично томе, када се помера дуж вертикалне осе, напон на Ри пин се мења. Дакле , имамо четири правца џојстика на два АДЦ излаза. Када се штап помери, напон на сваком затичу постаје висок или низак у зависности од смера.
Овде повезујемо овај модул џојстика са Ардуино УНО који долази са уграђеним АДЦ (Аналог то Дигитал Цонвертер) механизмом као што је приказано у видеу на крају. Овде сазнајте више о коришћењу Ардуино АДЦ-а.
Код и објашњење
Комплетни Ардуино код је поменут на крају.
У доњем коду дефинисали смо Кс и И осу џојстика модула за аналогни пин А0 односно А1.
#дефине јоиКс А0 #дефине јоиИ А1
Сада, у доњем коду, иницијализујемо ПИН 2 Ардуина за прекидач (тастер) модула Јоистицк и вредност буттонтате и буттонстате1 ће на почетку бити 0.
дугме инт = 2; инт буттонСтате = 0; инт буттонСтате1 = 0;
У доњем коду постављамо брзину преноса на 9600 и дефинисали смо Пин 7 као излазни пин, а пин као улазни пин. У почетку ће иглица дугмета остати висока док прекидач не притисне.
воид сетуп () {пинМоде (7, ИЗЛАЗ); пинМоде (дугме, ИНПУТ); дигиталВрите (дугме, ВИСОКО); Сериал.бегин (9600); }
Овде у овом коду читамо вредности са аналогног пина А0 и А1 и серијски штампамо.
инт кВалуе = аналогРеад (јоиКс); инт иВалуе = аналогРеад (јоиИ); Сериал.принт (кВалуе); Сериал.принт ("\ т"); Сериал.принтлн (иВалуе);
Услови за укључивање и искључивање ЛЕД диода према кретању осовине џојстика дефинисани су у доњем коду. Овде само узимамо аналогне вредности напона на пину А0 и А1 Ардуина. Ове аналогне вредности ће се мењати док померамо џојстик и ЛЕД ће светлити у складу са кретањем џојстика.
Овај услов је за кретање осовине џојстика у смеру осе И
иф (кВалуе> = 0 && иВалуе <= 10) {дигиталВрите (10, ХИГХ); } елсе {дигиталВрите (10, ЛОВ);}
Овај услов је за кретање осовине џојстика у смеру оси -Кс
иф (кВалуе <= 10 && иВалуе> = 500) {дигиталВрите (11, ХИГХ); } елсе {дигиталВрите (11, ЛОВ);}
Овај услов је за померање осовине џојстика у смеру Кс оси
иф (кВалуе> = 1020 && иВалуе> = 500) {дигиталВрите (9, ВИСОКО); } елсе {дигиталВрите (9, ЛОВ);}
Овај услов је за кретање осовине џојстика у смеру + И осе
иф (кВалуе> = 500 && иВалуе> = 1020) {дигиталВрите (8, ВИСОКО); } елсе {дигиталВрите (8, ЛОВ);}
Када померамо осовину џојстика дијагонално, долази један положај када ће аналогна вредност Кс и И бити 1023, односно 1023, и Пин 9 и Пин 8 ЛЕД ће светлити. Јер задовољава стање ЛЕД-а. Дакле, за уклањање те неусклађености дали смо услов да, ако је вредност (Кс, И) (1023, 1023), онда обе ЛЕД остају у стању ИСКЉУЧЕНО
иф (кВалуе> = 1020 && иВалуе> = 1020) {дигиталВрите (9, ЛОВ); дигиталВрите (8, ЛОВ); }
Следећи услов се користи за управљање ЛЕД диодом повезаном на прекидач тастера. Када притиснемо џојстик, ЛЕД ће се укључити и закључати док се дугме не отпусти. Опционално је користити прекидач са дугметом на модулу џојстика.
иф (буттонСтате == ЛОВ) {Сериал.принтлн ("Свитцх = Хигх"); дигиталВрите (7, ВИСОКО); } елсе {дигиталВрите (7, ЛОВ);}
Контрола ЛЕД диода помоћу џојстика са Ардуином
Након учитавања кода у Ардуино и повезивања компонената према схеми кола, сада ЛЕД-ом можемо управљати помоћу џојстика. Можемо УКЉУЧИТИ четири ЛЕД диоде у сваком смеру према покрету џојстика. Џојстик има два потенциометра у себи, један је за кретање по оси Кс, а други за кретање по оси И. Сваки потенциометар добија 5в од Ардуина. Дакле, док померамо џојстик, вредност напона ће се променити, а аналогна вредност на аналогним пиновима А0 и А1 такође ће се променити.
Дакле, из Ардуина читамо аналогну вредност за Кс и И осу и УКЉУЧУЈЕМО ЛЕД диоде према кретању осе џојстика. Прекидач са дугметом на модулу џојстика користи се за контролу појединачне ЛЕД диоде у колу, као што је приказано на видео снимку испод.