Kā Savienot Kursorsviru Ar Arduino

Satura rādītājs:

Kā Savienot Kursorsviru Ar Arduino
Kā Savienot Kursorsviru Ar Arduino
Anonim

Ir ļoti dažādi informācijas pārsūtīšanas veidi no personas uz mikrokontrolleru vai datoru, un viens no tiem ir kursorsviras izmantošana. Apskatīsim, kā savienot analogo kursorsviru ar divām asīm un pogu ar Arduino.

Kursorsvira ar divām asīm un pogu
Kursorsvira ar divām asīm un pogu

Tas ir nepieciešams

  • - Arduino;
  • - divu asu kursorsviru;
  • - 3 rezistori ar nominālo vērtību 220 Ohm;
  • - 1 RGB vai 3 parastās gaismas diodes.

Instrukcijas

1. solis

Kursorsvira ir ērta un ērti lietojama ierīce informācijas pārsūtīšanai. Runājot par brīvības pakāpju skaitu, indikāciju lasīšanas principu un izmantotajām tehnoloģijām, ir liels skaits kursorsviru veidu. Kursorsviras visbiežāk tiek izmantotas, lai kontrolētu jebkuru mehānismu, kontrolētu modeļu, robotu kustību. Analogā kursorsvira, kuru mēs apskatīsim šodien, ir rokturis, kas piestiprināts lodīšu savienojumam ar divām savstarpēji perpendikulārām asīm. Kad kloķis ir noliekts, ass pagriež potenciometra kustīgo kontaktu, kā dēļ mainās spriegums tā izejā. Arī analogajai kursorsvirai ir takta poga, kas tiek aktivizēta, nospiežot rokturi vertikāli.

Kursorsviras shematiska shēma
Kursorsviras shematiska shēma

2. solis

Pievienojiet kursorsviru saskaņā ar zemāk redzamo diagrammu. Savienojiet kursorsviras analogās izejas X un Y ar Arduino analogajām ieejām A1 un A2, SW pogas izeju - ar digitālo ieeju 8. Kursorsviru darbina ar +5 V spriegumu.

Arduino vadības sviras elektroinstalācijas shēma
Arduino vadības sviras elektroinstalācijas shēma

3. solis

Lai skaidri redzētu, kā darbojas kursorsvira, uzrakstīsim šādu skici. Deklarēsim tapas, iestatīsim tām darbības režīmus. Ievērojiet, ka setup () procedūrā mēs iestatām switchPin ievadi augstā līmenī. Tas ļauj iebūvēto pievilkšanas rezistoru šajā ostā. Ja to neieslēdzat, tad, kad kursorsviras poga netiek nospiesta, 8. Arduino ports karājas gaisā un noķer pikapus. Tas novedīs pie nevēlamiem, haotiskiem viltus pozitīviem rezultātiem.

Procedūrā loop () mēs pastāvīgi aptaujājam pogas stāvokli un parādām to, izmantojot gaismas diodi pie izejas 13. Sakarā ar to, ka switchPin ieeja tiek uzvilkta, gaismas diode pastāvīgi iedegas, un, nospiežot pogu, tā nodziest., nevis otrādi.

Pēc tam mēs nolasījām divu kursorsviras potenciometru rādījumus - X un Y asu izvadi. Arduino ir 10 bitu ADC, tāpēc no kursorsviras nolasītās vērtības atrodas diapazonā no 0 līdz 1023. Joystick vidējā pozīcijā, kā redzat ilustrācijā, vērtības reģionā 500 ir aptuveni diapazona vidusdaļa.

Skice, lai parādītu kursorsviras darbību
Skice, lai parādītu kursorsviras darbību

4. solis

Parasti elektromotoru vadīšanai izmanto kursorsviru. Bet kāpēc to neizmantot, piemēram, lai kontrolētu LED spilgtumu? Savienosim RGB LED (vai trīs parastās gaismas diodes) ar Arduino 9., 10. un 11. ciparu pieslēgvietām saskaņā ar iepriekšējo diagrammu, protams, neaizmirstot par rezistoriem.

Vadības sviru un RGB LED elektroinstalācijas shēma Arduino
Vadības sviru un RGB LED elektroinstalācijas shēma Arduino

5. solis

Mēs mainīsim atbilstošo krāsu spilgtumu, mainot kursorsviras stāvokli gar asīm, kā parādīts attēlā. Sakarā ar to, ka ražotājs, iespējams, nav precīzi centrējis kursorsviru un skalas vidusdaļa nav ap 512, bet no 490 līdz 525, gaismas diode var nedaudz iedegties pat tad, ja kursorsvira ir neitrālā stāvoklī. Ja vēlaties, lai tas būtu pilnībā izslēgts, veiciet attiecīgos programmas grozījumus.

R, G, B kanālu spilgtuma sadalījuma diagramma pa X un Y asīm
R, G, B kanālu spilgtuma sadalījuma diagramma pa X un Y asīm

6. solis

Pamatojoties uz iepriekš minēto diagrammu, mēs uzrakstīsim Arduino vadības skatu, lai kontrolētu RGB LED spilgtumu, izmantojot kursorsviru.

Pirmkārt, mēs deklarēsim tapu un divu mainīgo - ledOn un prevSw - atbilstību darbam ar pogu. Iestatīšanas () procedūrā piešķiriet tapām funkcijas un pievienojiet pievilkšanas rezistoru pogas tapai ar komandu digitalWrite (swPin, HIGH).

Cilpā () mēs definējam kursorsviras pogas nospiešanu. Nospiežot pogu, mēs pārslēdzam darba režīmus starp režīmu "zibspuldze" un "krāsu mūzika".

FreeMode () režīmā gaismas diožu spilgtumu kontrolē, pagriežot kursorsviru dažādos virzienos: jo spēcīgāks slīpums pa asi, jo spilgtāk spīd attiecīgā krāsa. Turklāt vērtību transformāciju pārņem kartes funkcija (value, fromLower, fromUpper, toLower, toUpper). Kartes () funkcija pārvieto izmērītās vērtības (no Zema, uz Augstu) gar kursorsviru asīm uz vēlamo spilgtuma diapazonu (uz Zema, uz Augsta). Jūs varat darīt to pašu ar parastām aritmētiskām darbībām, taču šis apzīmējums ir daudz īsāks.

DiscoMode () režīmā trīs krāsas pārmaiņus iegūst spilgtumu un izdziest. Lai varētu iziet no cilpas, nospiežot pogu, mēs pārbaudām katru atkārtojumu, lai redzētu, vai poga ir nospiesta.

Skice LED spilgtuma kontrolei, izmantojot analogo kursorsviru
Skice LED spilgtuma kontrolei, izmantojot analogo kursorsviru

7. solis

Rezultāts ir zibspuldze, kas izgatavota no trīs krāsu RGB gaismas diodes, kuras katras krāsas spilgtums tiek iestatīts, izmantojot kursorsviru. Un, nospiežot pogu, tiek aktivizēts režīms "krāsaina mūzika". Lai gan es to izmantoju, gluži pretēji, kā nakts gaismu.

Tādējādi mēs iemācījāmies savienot analogo divasu kursorsviru ar pogu ar Arduino un nolasīt no tā rādījumus. Jūs varat iedomāties un ieviest interesantāku kursorsviras izmantošanu nekā mūsu piemērs.

Ieteicams: