Адамнан ақпаратты микроконтроллерге немесе компьютерге берудің алуан түрлі әдістері бар, олардың бірі джойстикті пайдалану. Ардуиноға аналогтық джойстикті екі осьпен және батырмамен қалай қосуға болатынын қарастырайық.
Бұл қажетті
- - Ардуино;
- - екі білікті джойстик;
- - номиналды мәні 220 Ом болатын 3 резистор;
- - 1 RGB немесе 3 әдеттегі LED.
Нұсқаулық
1-қадам
Джойстик - бұл ақпаратты таратуға арналған ыңғайлы және қолдануға ыңғайлы құрылғы. Еркіндік дәрежесі, көрсеткіштерді оқу принципі және қолданылатын технологиялар бойынша джойстиктердің көптеген түрлері бар. Джойстиктер көбінесе кез-келген механизмдердің, басқарылатын модельдердің, роботтардың қозғалысын басқару үшін қолданылады. Бүгін қарастыратын аналогтық джойстик - бұл екі өзара перпендикуляр осьтері бар доп түйіспесіне бекітілген сап. Тұтқаны қисайта отырып, ось потенциометрдің жылжымалы түйіспесін айналдырады, соған байланысты оның шығуындағы кернеу өзгереді. Сондай-ақ, аналогтық джойстикте тұтқаны тігінен басқанда іске қосылатын такт батырмасы бар.
2-қадам
Джойстикті төмендегі сызбаға сәйкес қосыңыз. Джойстиктің X және Y аналогты шығуларын Arduino аналогтық кірістеріне A1 және A2 қосыңыз, SW батырмасының шығысы цифрлық кіріске 8. Джойстик +5 В кернеуімен жұмыс істейді.
3-қадам
Джойстиктің қалай жұмыс істейтінін нақты көру үшін осындай эскиз жазайық. Штырларды жариялайық, оларға жұмыс режимдерін орнатыңыз. Setup () процедурасында біз switchPin кірісін жоғары деңгейге орнатқанымызға назар аударыңыз. Бұл осы портта орнатылған тартқыш резисторды қосады. Егер сіз оны қоспасаңыз, онда джойстик түймесі басылмаған кезде, 8-ші Arduino порты ауада іліп, пикаптарды ұстайды. Бұл қажетсіз, хаотикалық жалған позитивтерге әкеледі.
Ілмек () процедурасында біз түйменің күйін үнемі сұрастырамыз және оны 13 шығысындағы жарық диодты пайдаланып көрсетеміз, коммутатордың кірісі тартылғандықтан, жарық диоды үнемі жанып тұрады, ал түйме басылған кезде сөніп қалады., және керісінше емес.
Әрі қарай, біз джойстиктің екі потенциометрінің көрсеткіштерін - X және Y осьтерінің шығуын оқимыз. Ардуинода 10 биттік ADC бар, сондықтан джойстиктен оқылатын мәндер 0-ден 1023 аралығында болады. Джойстиктің орта позициясында, суретте көріп отырғаныңыздай, 500 аймақтағы мәндер диапазонның ортасына жуықтайды.
4-қадам
Әдетте джойстик электр қозғалтқыштарын басқару үшін қолданылады. Бірақ неге оны жарықдиодтың жарықтылығын басқару үшін қолданбасқа? Аргенинаның 9, 10 және 11 сандық порттарына RGB жарықдиодын (немесе үш қарапайым жарық диодты) жоғарыдағы сызба бойынша қосайық, әрине резисторлар туралы ұмытпайық.
5-қадам
Суретте көрсетілгендей джойстиктің осьтер бойымен орналасуын өзгерткен кезде сәйкес түстердің жарықтығын өзгертеміз. Джойстикті өндіруші дәл дәл орталықтандырмауы және шкаланың ортасы 512 шамасында емес, 490-дан 525-ке дейін болуы мүмкін болғандықтан, джойстик бейтарап күйде тұрғанда да жарық диоды аздап жануы мүмкін. Егер сіз оның толықтай өшірілгенін қаласаңыз, онда бағдарламаға тиісті түзетулер енгізіңіз.
6-қадам
Жоғарыда келтірілген схемаға сүйене отырып, джойстикті пайдаланып, Arduino RGB жарық диодының жарықтығын басқарудың эскизін жазамыз.
Алдымен түйреуішпен жұмыс істеуге арналған түйреуіштер мен екі айнымалының сәйкестігін жариялаймыз - ledOn және prevSw. Setup () процедурасында функцияларды түйреуіштерге тағайындаңыз және тартқыш резисторды digitalWrite (swPin, HIGH) командасымен батырма түйреуішіне қосыңыз.
Циклда () джойстик батырмасын басуды анықтаймыз. Түймені басқанда, біз жұмыс режимдерін «фонарь» мен «түсті музыка» режимі арасында ауыстырамыз.
FreeMode () режимінде жарық диодтарының жарықтығы джойстикті әр түрлі бағытқа еңкейту арқылы басқарылады: ось бойымен еңкейту неғұрлым күшті болса, сәйкесінше түс жарқырайды. Сонымен қатар, мәндерді түрлендіруді карта функциясы қабылдайды (мән, бастап Төмен, жоғарыдан, төменге, жоғарыға дейін). Map () функциясы өлшенген мәндерді джойстик осьтері бойымен қажетті жарықтық диапазонына (Төменге, Жоғарыға) жібереді. Кәдімгі арифметикалық амалдармен де солай жасауға болады, бірақ бұл жазба әлдеқайда қысқа.
DiscoMode () режимінде үш түсті кезек-кезек жарықтылық пайда болады және сөнеді. Түйме басылған кезде циклден шығу үшін әр итерацияны тексеріп, түйменің басылғанын тексереміз.
7-қадам
Нәтижесінде үш түсті RGB жарықдиодты шамы пайда болады, оның жарықтығы джойстиктің көмегімен орнатылады. Түймені басқан кезде «түсті музыка» режимі іске қосылады. Мен оны қолданғанымен, керісінше, түнгі жарық ретінде.
Осылайша, біз екі осьті аналогты джойстикті батырма арқылы Arduino-ға қалай қосуға болатынын және оқылымдарды оқуды үйрендік. Сіз джойстикті біздің мысалға қарағанда қызықты пайдалану туралы ойлап, жүзеге асыра аласыз.