Postoji širok spektar načina za prenos podataka od osobe do mikrokontrolera ili računara, a jedan od njih koristi džojstik. Pogledajmo kako povezati analogni džojstik sa dvije ose i dugmetom na Arduino.
Neophodno je
- - Arduino;
- - dvoosovinski džojstik;
- - 3 otpornika nominalne vrijednosti 220 Ohm;
- - 1 RGB ili 3 konvencionalne LED diode.
Instrukcije
Korak 1
Džojstik je prikladan i lak za upotrebu uređaj za prenos informacija. Postoji veliki broj vrsta džojstika u pogledu broja stepeni slobode, principa očitavanja indikacija i korištenih tehnologija. Joystickovi se najčešće koriste za kontrolu kretanja bilo kojih mehanizama, upravljanih modela, robota. Analogni džojstik, koji ćemo pogledati danas, je ručka pričvršćena na kuglični zglob sa dvije međusobno okomite osi. Kada je gumb nagnut, os okreće pokretni kontakt potenciometra, zbog čega se napon na njegovom izlazu mijenja. Takođe, analogni džojstik ima taster za taktiranje koji se aktivira kada vertikalno pritisnete ručicu.
Korak 2
Spojite džojstik prema donjem dijagramu. Povežite analogne izlaze X i Y džojstika na analogne ulaze A1 i A2 Arduina, izlaz SW dugmeta na digitalni ulaz 8. Džostik se napaja naponom od +5 V.
Korak 3
Da bismo jasno vidjeli kako funkcionira džojstik, napišimo takvu skicu. Proglasimo pinove, podesimo načine rada za njih. Primijetite da smo u postupku postavljanja () postavili ulaz switchPin na visok nivo. To omogućava ugrađeni pull-up otpornik na ovom priključku. Ako ga ne uključite, tada kada se ne pritisne dugme na džojstiku, osmi Arduino port će visjeti u zraku i hvatati preuzimanja. To će dovesti do neželjenih, kaotičnih lažnih pozitivnih rezultata.
U proceduri 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, a kada se pritisne tipka, on se gasi, a ne obrnuto.
Dalje č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.
Korak 4
Obično se džojstik 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 prilikom promjene položaja džojstika duž osi, kao što je prikazano na slici. S obzirom na to da proizvođač možda neće biti precizno centriran džojstik i neće imati sredinu skale na oko 512, već od 490 do 525, LED može lagano svijetliti čak i kada je džojstik u neutralnom položaju. Ako želite da se potpuno isključi, unesite odgovarajuće izmjene u program.
Korak 6
Na osnovu gornjeg dijagrama, napisat ćemo skicu Arduino kontrole svjetline RGB LED pomoću džojstika.
Prvo ćemo proglasiti korespondenciju pinova i dvije varijable - ledOn i prevSw - za rad s gumbom. U postupku podešavanja (), dodijelite funkcije pinovima i povežite otpor za izvlačenje na zatik gumba pomoću naredbe digitalWrite (swPin, HIGH).
U petlji () definiramo pritiskanje tipke džojstika. Kada pritisnete tipku, prebacujemo načine rada između načina rada "baterijska svjetiljka" i načina rada "muzika u boji".
U režimu freeMode (), svjetlina LED-a kontrolira se naginjanjem džojstika 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 džojstika u željeni opseg 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 kada se pritisne tipka, provjeravamo svaku iteraciju kako bismo vidjeli je li tipka pritisnuta.
Korak 7
Rezultat je baterijska svjetiljka izrađena od trobojnog RGB LED-a, čija se svjetlina podešava pomoću džojstika. A kada pritisnete dugme, aktivira se režim "muzika u boji". Iako ga koristim, naprotiv, kao noćno svjetlo.
Tako smo naučili kako povezati analogni dvoosovinski džojstik sa dugmetom na Arduino i čitati očitanja s njega. Možete smisliti i implementirati zanimljiviju upotrebu džojstika od našeg primjera.