Yuav Ua Li Cas Txuas Tus Joystick Rau Arduino

Cov txheej txheem:

Yuav Ua Li Cas Txuas Tus Joystick Rau Arduino
Yuav Ua Li Cas Txuas Tus Joystick Rau Arduino

Video: Yuav Ua Li Cas Txuas Tus Joystick Rau Arduino

Video: Yuav Ua Li Cas Txuas Tus Joystick Rau Arduino
Video: Обзор Funduino Joystick Shield 2024, Plaub Hlis Ntuj
Anonim

Muaj ntau txoj hauv kev ntawm kev hloov cov ntaub ntawv los ntawm ib tus neeg mus rau microcontroller lossis lub koos pij tawj, thiab ib qho ntawm lawv yog siv tus joystick. Cia peb pom yuav ua li cas txuas ib qho kev zoo siab nrog ob tus ncej thiab ib lub pob rau Arduino.

Lub thauv xim muaj ob lub pob thiab ib lub pob
Lub thauv xim muaj ob lub pob thiab ib lub pob

Nws yog qhov tsim nyog

  • - Arduino;
  • - ob-axis qhov taw qhia;
  • - 3 resistors nrog nominal tus nqi ntawm 220 Ohm;
  • - 1 RGB lossis 3 cov pa LED.

Cov Lus Qhia

Kauj ruam 1

Lub joystick yog ib qho khoom siv tau yooj yim thiab yooj yim rau kis cov ntaub ntawv. Muaj ntau qhov ntawm cov kev xyiv fab ntawm qhov muaj pes tsawg tus degrees ntawm txoj kev ywj pheej, lub hauv paus ntsiab lus ntawm kev nyeem cov cim taw qhia thiab kev siv thev naus laus zis. Cov pob zeb joysticks feem ntau yog siv los tswj kev txav ntawm txhua qhov txheej txheem, tswj qauv qauv, neeg hlau. Lub analog joystick, uas peb yuav saib niaj hnub no, yog ib qho kev coj ua txuas rau lub pob sib txuas nrog ob leeg ob leeg sib tshooj. Thaum cov pob qhov rooj tilted, lub axis tig txoj kev sib cuag mus los ntawm potentiometer, vim qhov voltage ntawm nws cov zis hloov pauv. Ntxiv mus, lub analog joystick muaj khawm khawm, uas yog txhais thaum koj nias tus kov tes.

Joystick schematic daim duab
Joystick schematic daim duab

Kauj ruam 2

Txuas lub joystick raws li daim duab hauv qab no. Txuas lub analog outputs X thiab Y ntawm lub joystick mus rau cov khoom siv analog A1 thiab A2 ntawm Arduino, qhov tso zis ntawm SW khawm rau digital cov tswv yim 8. Lub joystick yog siv los ntawm qhov ntsuas voltage ntawm +5 V.

Daim phiaj xov paj hluav taws xob thaiv rau Arduino
Daim phiaj xov paj hluav taws xob thaiv rau Arduino

Kauj ruam 3

Txhawm rau kom pom meej meej seb txoj kev ua haujlwm lub joystick, cia sau li sketch. Cia peb tshaj tawm cov pins, teeb tsa cov qauv ua haujlwm rau lawv. Daim ntawv ceeb toom tias nyob rau hauv cov txheej txheem teeb tsa () txheej txheem, peb teeb tsa lub tshuab hluav taws xob switchPin rau qib siab. Qhov no ua rau lub built-in rub-up resistor ntawm qhov chaw nres nkoj no. Yog tias koj tsis qhib nws, tom qab ntawd thaum khawm khawm tsis rov qab, lub chaw nres nkoj 8th Arduino yuav dai rau saum huab cua thiab ntes tus neeg nqa tsheb. Qhov no yuav ua rau qhov tsis muaj qhov tsis txaus ntseeg, chaotic cuav.

Hauv cov voj voos () cov txheej txheem, peb tsis tu ncua xaiv lub xeev ntawm lub pob thiab tso saib nws siv lub LED ntawm cov zis 13. Vim lub switchPin cov tswv yim raug rub tawm, LED tseem nyob tas li, thiab thaum lub pob nyem, nws tawm mus, thiab tsis lwm tsab.

Tom ntej no, peb nyeem cov kev nyeem ntawm ob lub hwj chim ntawm lub joystick - qhov tawm ntawm X thiab Y axes. Arduino muaj 10-ADC ntxiv, yog li cov txiaj ntsig nyeem los ntawm lub joystick nyob hauv thaj tsam li 0 txog 1023. Hauv nruab nrab txoj hauj lwm ntawm lub joystick, raws li koj tuaj yeem pom hauv daim duab, cov nqi hauv cheeb tsam 500 yog hais txog nruab nrab ntawm ntau.

Cov duab pob txha los qhia kev ua haujlwm ntawm lub hws
Cov duab pob txha los qhia kev ua haujlwm ntawm lub hws

Kauj ruam 4

Feem ntau tus joystick siv los tswj lub tshuab hluav taws xob. Tab sis vim li cas ho tsis siv nws los tswj lub ci ci ntawm LED, piv txwv li? Cia txuas ib qho RGB LED (lossis peb qhov LED zoo tib yam) rau digital ports 9, 10 thiab 11 ntawm Arduino raws li daim duab saum toj saud, tsis txhob hnov qab, tau kawg, hais txog lub resistors.

Joystick thiab RGB LED xaim daim duab rau Arduino
Joystick thiab RGB LED xaim daim duab rau Arduino

Kauj ruam 5

Peb yuav hloov qhov ci ntsa iab ntawm cov xim sib xws thaum hloov txoj hauj lwm ntawm lub joystick raws cov kab hlau, raws li pom hauv daim duab. Vim tias lub joystick yuav tsis raug ncaj qha los ntawm tus tsim khoom lag luam thiab muaj qhov nruab nrab ntawm qhov ntsuas tsis yog nyob ib ncig ntawm 512, tab sis txij 490 txog 525, LED yuav lub teeb me ntsis txawm tias lub joystick nyob hauv qhov chaw nruab nrab. Yog tias koj xav kom nws muab tua pov tseg tag nrho, tom qab ntawd tsim kho cov kev tsim nyog uas tsim nyog rau hauv txoj haujlwm.

Daim duab ntawm lub teeb ci ntsa iab faib rau txoj kab R, G, B raws kab X thiab Y
Daim duab ntawm lub teeb ci ntsa iab faib rau txoj kab R, G, B raws kab X thiab Y

Kauj ruam 6

Raws li daim duab saum toj no, peb yuav sau cov duab kos ntawm Arduino tswj lub teeb ci ci ntawm RGB LED siv lub ntsuas phoo.

Ua ntej, peb yuav tshaj tawm cov kev sib tiv thaiv ntawm pins thiab ob qhov hloov pauv - ledOn thiab prevSw - rau kev ua haujlwm nrog lub pob. Hauv kev teeb tsa () tus txheej txheem, muab lub luag haujlwm rau cov pins thiab txuas lub rub tawm-resistor kom khawm khawm nrog digitalWrite (swPin, HIGH) hais kom ua.

Nyob rau hauv lub voj () peb txhais cov nias ntawm cov khawm joystick. Thaum koj nias lub khawm, peb hloov cov kev ua haujlwm ntawm hom "teeb nyem" thiab hom "xim nkauj".

Hauv hom dawbMode (), lub ci ci ntawm cov LEDs yog tswj los ntawm tilting joystick nyob rau hauv cov lus qhia sib txawv: qhov muaj zog dua qhov qaij nyob ntawm lub axis, qhov ci dua cov xim coj ua. Ntxiv mus, kev hloov pauv ntawm qhov tseem ceeb tau coj los ntawm daim ntawv qhia muaj nuj nqi (tus nqi, ntawm qis dua, txij li lub hnub, mus rau qis, toUpper). Cov duab kos () muaj nuj nqi hloov chaw ntsuas tus nqi ntsuas (los ntawm qis qis, mus rau Qhov Siab) raws qhov ntsuas lub suab zoo siab mus rau qhov xav tau ntau yam (kom tsawg, mus rau Siab). Koj tuaj yeem ua tib yam nrog kev ua haujlwm laij zauv zoo tib yam, tab sis qhov kev cim no luv dua.

Nyob hauv hom kev xaiv discoMode (), peb xim hloov tau tau ci ci thiab tawm mus. Txhawm rau tawm ntawm lub voj thaum lub pob raug nyem, peb tshawb xyuas txhua lub iteration kom pom tias khawm tau nias.

Teeb duab txhawm rau tswj kev ci ntsa iab ntawm LED siv kev siv tus ntsuas qhov ntsuas
Teeb duab txhawm rau tswj kev ci ntsa iab ntawm LED siv kev siv tus ntsuas qhov ntsuas

Kauj Ruam 7

Qhov txiaj ntsig yog lub teeb nyem ua ntawm peb-xim RGB LED, qhov ci ci ntawm txhua qhov xim uas tau teeb tsa siv lub suab paj nruag. Thiab thaum koj nias lub khawm, "hom suab paj nruag" hom kev ua haujlwm. Txawm hais tias kuv siv nws, ntawm qhov tsis tooj, raws li hmo ntuj lub teeb.

Yog li, peb tau kawm txog yuav ua li cas txuas cov lus sib piv ob-axis joystick nrog lub pob nyem rau Arduino thiab nyeem cov ntawv nyeem los ntawm nws. Koj tuaj yeem xav txog thiab siv qhov kev tsim nyog tshaj ntawm kev siv lub tog raj kheej tshaj peb tus piv txwv.

Pom zoo: