Postoji širok izbor načina za prijenos podataka od osobe do mikrokontrolera ili računala, a jedan od njih koristi navigacijsku tipku. Pogledajmo kako spojiti analogni džojstik s dvije osi i gumbom na Arduino.
Nužno je
- - Arduino;
- - dvoosovinski džojstik;
- - 3 otpornika nominalne vrijednosti 220 Ohm;
- - 1 RGB ili 3 konvencionalne LED diode.
Upute
Korak 1
Navigacijska palica prikladan je i jednostavan uređaj za prijenos podataka. Postoji velik broj vrsta džojstika u smislu broja stupnjeva slobode, načela čitanja indikacija i korištenih tehnologija. Joystickovi se najčešće koriste za kontrolu kretanja bilo kojih mehanizama, kontroliranih modela, robota. Analogni džojstik, koji ćemo pogledati danas, ručka je pričvršćena na kuglični zglob s dvije međusobno okomite osi. Kada je gumb nagnut, os okreće pomični kontakt potenciometra, zbog čega se napon na njegovom izlazu mijenja. Također, analogni džojstik ima tipku za taktiranje koja se aktivira kada okomito pritisnete ručku.
Korak 2
Spojite upravljačku tipku prema donjem dijagramu. Analogne izlaze X i Y džojstika spojite na analogne ulaze A1 i A2 Arduina, izlaz gumba SW na digitalni ulaz 8. Džostik se napaja naponom od +5 V.
3. korak
Da bismo jasno vidjeli kako funkcionira džojstik, napišimo takvu skicu. Proglasimo igle, postavimo im načine rada. Primijetite da smo u postupku postavljanja () postavili ulaz switchPin na visoku razinu. To omogućuje ugrađeni pull-up otpornik na ovom priključku. Ako ga ne uključite, kad ne pritisnete gumb za upravljanje, 8. Arduino priključak će visjeti u zraku i hvatati preuzimanja. To će dovesti do neželjenih, kaotičnih lažnih pozitivnih rezultata.
U postupku loop () neprestano anketiramo stanje gumba i prikazujemo ga pomoću LED diode na izlazu 13. Zbog izvlačenja ulaza switchPin, LED je stalno uključen i kad se pritisne tipka, on se gasi, a ne obrnuto.
Zatim čitamo očitanja dva potenciometra džojstika - izlaz osi X i Y. Arduino ima 10-bitni ADC, tako da vrijednosti očitane s džojstika leže u rasponu od 0 do 1023. U srednjem položaju džojstika, kao što možete vidjeti na ilustraciji, vrijednosti u području 500 otprilike su sredina raspona.
4. korak
Obično se joystickom koristi za upravljanje električnim motorima. Ali zašto ga ne biste koristili za upravljanje svjetlinom LED diode, na primjer? Spojimo RGB LED (ili tri obične LED) na digitalne priključke 9, 10 i 11 Arduina prema gornjem dijagramu, ne zaboravljajući, naravno, na otpornike.
Korak 5
Svjetlinu odgovarajućih boja promijenit ćemo pri promjeni položaja džojstika duž osi, kao što je prikazano na slici. S obzirom na to da proizvođač možda nije točno centrirao upravljačku palicu, a sredina ljestvice nije oko 512, već od 490 do 525, LED može lagano svijetliti čak i kada je upravljačka palica u neutralnom položaju. Ako želite da se potpuno isključi, unesite odgovarajuće izmjene u program.
Korak 6
Na temelju gornjeg dijagrama napisat ćemo skicu Arduino kontrole svjetline RGB LED pomoću joysticka.
Prvo ćemo proglasiti korespondenciju pinova i dvije varijable - ledOn i prevSw - za rad s gumbom. U postupku postavljanja () dodijelite funkcije pinovima i povežite otpor za izvlačenje na zatik gumba pomoću naredbe digitalWrite (swPin, HIGH).
U petlji () definiramo pritiskanje gumba za upravljanje. Kad pritisnete tipku, prebacujemo načine rada između načina rada "svjetiljke" i načina rada "glazba u boji".
U načinu freeMode () svjetlina LED-a kontrolira se naginjanjem upravljačke tipke u različitim smjerovima: što je jače naginjanje duž osi, to će odgovarajuća boja svijetliti. Štoviše, transformaciju vrijednosti preuzima funkcija map (value, fromLower, fromUpper, toLower, toUpper). Funkcija map () prenosi izmjerene vrijednosti (od niske do visoke) duž osi upravljačke tipke u željeni raspon svjetline (na nisku, visoku). To možete učiniti i s uobičajenim aritmetičkim operacijama, ali ovaj je zapis mnogo kraći.
U načinu discoMode () tri boje naizmjenično dobivaju svjetlinu i gase se. Da bismo mogli izaći iz petlje kad se pritisne gumb, provjeravamo svaku iteraciju da vidimo je li gumb pritisnut.
Korak 7
Rezultat je baterijska svjetiljka izrađena od trobojnog RGB LED-a, čija se svjetlina podešava pomoću joysticka. A kad pritisnete tipku, aktivira se način "glazbe u boji". Iako ga koristim, naprotiv, kao noćno svjetlo.
Dakle, naučili smo kako povezati analogni dvoosovinski džojstik s gumbom na Arduino i čitati očitanja s njega. Možete smisliti i primijeniti zanimljiviju upotrebu džojstika od našeg primjera.