Джойстикти Arduino менен кантип байланыштырса болот

Мазмуну:

Джойстикти Arduino менен кантип байланыштырса болот
Джойстикти Arduino менен кантип байланыштырса болот

Video: Джойстикти Arduino менен кантип байланыштырса болот

Video: Джойстикти Arduino менен кантип байланыштырса болот
Video: Подключение: Touch memory (ТМ) или iButton DS1990 к Arduino / ArduBlock 2024, Апрель
Anonim

Адамдан маалыматты микроконтроллерге же компьютерге өткөрүүнүн ар кандай жолдору бар жана алардын бири джойстикти колдонот. Келгиле, аналогу джойстикти эки огу жана баскычы менен Arduinoго кантип туташтырууну карап көрөлү.

Эки огу жана баскычы бар джойстик
Эки огу жана баскычы бар джойстик

Ал зарыл

  • - Arduino;
  • - эки октуу джойстик;
  • - номиналы 220 Ом болгон 3 резистор;
  • - 1 RGB же 3 кадимки LED.

Нускамалар

1 кадам

Джойстик маалыматты берүү үчүн ыңгайлуу жана колдонууга ыңгайлуу шайман. Эркиндик даражаларынын саны, көрсөткүчтөрдү окуу принциби жана колдонулган технологиялар боюнча джойстиктердин түрлөрү көп. Джойстиктер көбүнчө ар кандай механизмдердин, башкарылуучу моделдердин, роботтордун кыймылын башкаруу үчүн колдонулат. Бүгүн карала турган аналогдук джойстик - бул эки өз ара перпендикулярдуу огу бар тоголок муунга бекитилген туткасы. Тутканы эңкейткенде, огу потенциометрдин кыймылдуу контактын айландырат, анын эсебинен анын чыгышындагы чыңалуу өзгөрөт. Ошондой эле, аналогдук джойстиктин такт баскычы бар, ал туткасын тигинен басканда иштетилет.

Джойстиктин схемасы
Джойстиктин схемасы

2-кадам

Төмөндөгү схема боюнча джойстикти туташтырыңыз. Джойстиктин X жана Y аналогдук чыгууларын Arduino аналогдук кириштерине A1 жана A2 туташтырыңыз, SW баскычынын чыгышы санарип киришке 8. Джойстик +5 В чыңалуу менен иштейт.

Arduino үчүн джойстиктин электр схемасы
Arduino үчүн джойстиктин электр схемасы

3-кадам

Джойстиктин кандай иштээрин ачык билүү үчүн, ушундай эскизди жазалы. Пиндерди жарыя кылалы, аларга иштөө режимдерин орнотолу. Орнотуу () процедурасында биз switchPin киргизүүсүн жогорку деңгээлге койгонубузга көңүл буруңуз. Бул порттогу орнотулган тартма резисторду иштетет. Эгер сиз күйгүзбөсөңүз, анда джойстик баскычы басылбай калганда, 8-Arduino порту абада илинип, пикаптарды кармайт. Бул керексиз, башаламан жалган позитивдерге алып келет.

Loop () процедурасында биз баскычтын абалын ар дайым сурамжылап, 13-чыгыштагы LED колдонуп көрсөтөбүз. SwitchPin киргизилгендиктен, LED дайыма күйүп турат жана баскыч басылганда өчүп калат, жана тескерисинче эмес.

Андан кийин, биз джойстиктин эки потенциометринин көрсөткүчтөрүн окуйбуз - X жана Y окторунун чыгышы. Ардуинодо 10 биттик ADC бар, ошондуктан джойстиктен окулган маанилер 0ден 1023ке чейин. Джойстиктин ортоңку абалында, сүрөттө көрүнүп тургандай, 500 чөлкөмүндөгү маанилер диапазондун ортосуна жакын.

Джойстиктин иштешин көрсөткөн эскиз
Джойстиктин иштешин көрсөткөн эскиз

4-кадам

Адатта джойстик электр кыймылдаткычтарын башкаруу үчүн колдонулат. Бирок, эмне үчүн, мисалы, бир LED жарыктыгын башкаруу үчүн колдонушпайт? Аргентинанын 9, 10 жана 11 санарип портуна RGB светодиодун (же үч кадимки светодиодду) жогорудагы схема боюнча туташтыралы, албетте, резисторлор жөнүндө унутпайлы.

Ардуино менен байланышкан Джойстик жана RGB LED схемасы
Ардуино менен байланышкан Джойстик жана RGB LED схемасы

5-кадам

Сүрөттө көрсөтүлгөндөй, джойстиктин октор боюнча абалын өзгөрткөндө, тиешелүү түстөрдүн ачыктыгын өзгөртөбүз. Джойстиктин өндүрүүчү тарабынан так борборлоштурулбагандыгынан жана шкаланын ортосунда 512 чамасында эмес, 490дон 525ке чейин болгонуна байланыштуу, джойстик нейтралдуу абалда турганда дагы, LED бир аз күйүп кетиши мүмкүн. Эгер анын толугу менен өчүрүлүшүн кааласаңыз, анда программага тиешелүү түзөтүүлөрдү киргизиңиз.

X жана Y октору боюнча R, G, B каналдарынын жарыктыгынын бөлүштүрүлүшүнүн диаграммасы
X жана Y октору боюнча R, G, B каналдарынын жарыктыгынын бөлүштүрүлүшүнүн диаграммасы

6-кадам

Жогорудагы схеманын негизинде биз Arduino контроллеринин джойстикти колдонуп, RGB светодиодунун жарыгын көзөмөлдөөнүн эскизин жазабыз.

Биринчиден, кнопка менен иштөө үчүн төөнөгүчтөрдүн жана эки өзгөрмөнүн - ledOn жана prevSw шайкештигин жарыялайбыз. Орнотуу () процедурасында, функцияларды казыктарга дайындап, тартылуу резисторун баскыч пинге digitalWrite (swPin, HIGH) буйругу менен туташтырыңыз.

Циклда () биз джойстик баскычын басууну аныктайбыз. Баскычты басканда, биз иштөө режимдерин "фонарик" режими менен "түстүү музыка" режиминин ортосунда которобуз.

FreeMode () режиминде светодиоддордун жарыктыгы джойстикти ар кандай багыттарга оодаруу менен башкарылат: огу боюнча эңкейиш канчалык күчтүү болсо, ошого жараша тиешелүү түс жаркырайт. Мындан тышкары, маанилердин трансформациясы карта функциясы тарабынан кабыл алынат (value, fromLower, fromUpper, toLower, toUpper). Map () функциясы ченелген маанилерди (Төмөндөн, Өйдө) джойстиктин октору боюнча керектүү жарык диапазонуна (Төмөн, Бийик) которот. Кадимки арифметикалык амалдар менен да ушундай кылсаңыз болот, бирок бул белгилөө бир топ кыска.

DiscoMode () режиминде үч түс кезектешип жарыкка ээ болуп, өчүп калат. Кнопка басылганда циклден чыгуу үчүн, ар бир кайталоону баскыч басылганын текшерип турабыз.

Аналогдуу джойстиктин жардамы менен светодиоддун жарыктыгын көзөмөлдөө үчүн эскиз
Аналогдуу джойстиктин жардамы менен светодиоддун жарыктыгын көзөмөлдөө үчүн эскиз

7-кадам

Натыйжада, үч түстүү RGB светодиодунан жасалган фонарь жаркырады, анын ар биринин жарыгы джойстиктин жардамы менен орнотулган. Ал эми баскычты басканда "түстүү музыка" режими иштей баштайт. Мен аны колдонуп жатам да, тескерисинче, түнкү чырак катары.

Ошентип, биз эки октуу аналогдук джойстикти баскычы менен Arduinoго кантип туташтырууну жана андан окуганды үйрөндүк. Биздин мисалга караганда джойстиктин кызыктуу колдонулушун ойлоп таап, ишке ашырсаңыз болот.

Сунушталууда: