Tutorial ESP32 26/55 - Lilo Joystick pẹlu Arduino Ṣiṣe Igbese | SunFounder's ESP32 IoT kit
Nínú ẹ̀kọ́ yìí, a ó kọ́ bí a ṣe lè so ọ̀pá àṣíá XY (XY joystick) pọ̀ mọ́ ẹ̀rọ ESP32 microcontroller láti ọ̀dọ̀ SunFounder, tí yóò jẹ́ kí a lè mọ ibi tí ó wà àti láti ṣe ìgbésẹ̀ nípa ìfidánilẹ́yìn rẹ̀. A ó tún fi buzzer kan pọ̀ tí yóò máa ṣiṣẹ́ nígbà tí a bá gbé ọ̀pá àṣíá náà sí ibi pàtó kan. Ìpààrọ̀ yìí yóò jẹ́ kí a lè dá àwọn iṣẹ́ ìbánidọ́rẹ̀wọ̀ tí ń fèsì sí ìfidánilẹ́yìn olùmúlò ní àkókò gidi.
Ọ̀pá àṣíá XY náà ń pèsè àwọn ìjàde analog méjì tí ó bá àwọn ipò X àti Y mu, àti bọ̀tìnnì kan tí a lè tẹ láti ṣe ìgbésẹ̀ kan. Nípa kíkà àwọn iye tí ó wá láti ọ̀pá àṣíá náà, a lè ṣàkóso àwọn ohun oríṣiríṣi nínú iṣẹ́ wa, bíi mímú buzzer ṣiṣẹ́ tàbí fífi àwọn iye hàn lórí ojú ẹ̀rọ. Láti lóye ìlànà náà dáadáa, rí i pé o wo fídíò náà fún àwọn ìmọ̀ púpọ̀ síi (nínú fídíò ní 00:00).
Àlàyé Ohun Èlò
Àwọn ohun èlò pàtàkì fún iṣẹ́ yìí ni ESP32 microcontroller, ọ̀pá àṣíá XY, àti buzzer kan. ESP32 jẹ́ pátákó tí ó lè ṣe ọ̀pọ̀lọpọ̀ ohun tí ó sì ń ṣe àtìlẹ́yìn fún Wi-Fi àti Bluetooth, tí ó mú un dára fún àwọn iṣẹ́ IoT. Ọ̀pá àṣíá XY náà ní àwọn resistor oníyípadà méjì fún àwọn ẹ̀gbẹ́ X àti Y, àti bọ̀tìnnì tí a lè tẹ fún ìfidánilẹ́yìn àfikún.
Ọ̀pá àṣíá náà ń pèsè àwọn àmì analog tí ó bá ipò rẹ̀ mu, èyí tí àwọn pin analog ESP32 ń kà. Bọ̀tìnnì náà ń pèsè àmì oní nọ́ńbà (digital) nígbà tí a bá tẹ ẹ. Buzzer náà ti sopọ̀ mọ́ pin ìjàde oní nọ́ńbà kan lórí ESP32, tí yóò jẹ́ kí a lè mú un ṣiṣẹ́ tàbí pa á dá lórí ipò ọ̀pá àṣíá náà.
Àwọn Àlàyé Datasheet
| Olùṣelọ́pọ̀ | SunFounder |
|---|---|
| Nọ́ńbà apá | XY Joystick Module |
| Folti ìṣiṣẹ́ | 3.3 V – 5 V |
| Iye Resistor | 10 kΩ (fún ẹ̀gbẹ́ kọ̀ọ̀kan) |
| Ìwọ̀n Current Tí Ó Pọ̀ Jù | 20 mA |
| Irú Bọ̀tìnnì | Bọ̀tìnnì tí a tẹ fún ìgbà díẹ̀ |
| Ìwọ̀n | Ní nǹkan bí 50 mm x 50 mm |
- Rí i pé a fi 3.3 V ṣe agbára ọ̀pá àṣíá náà fún ìbámu pẹ̀lú ESP32.
- Lo àwọn resistor ìfà (pull-up) fún bọ̀tìnnì náà láti yẹra fún àwọn ìfidánilẹ́yìn tí kò dúró ṣinṣin.
- So àwọn ìjàde analog pọ̀ mọ́ àwọn pin ADC ESP32 (34 fún X, 35 fún Y).
- Lo ìlànà kan láti dènà ìmúṣiṣẹ́ èké fún bọ̀tìnnì náà.
- Ṣàkíyèsí àwọn ipele folti láti rí i pé wọ́n wà nínú àwọn ààlà ìṣiṣẹ́ tí ó dáa.
Àwọn Ìtọ́nisọ́nà Ìsopọ̀

Láti so ọ̀pá àṣíá náà pọ̀ mọ́ ESP32, bẹ̀rẹ̀ nípa sísopọ̀ pin ilẹ̀ (ground) láti ọ̀pá àṣíá náà sí pin ilẹ̀ kan lórí ESP32. Lẹ́yìn náà, so pin VCC ti ọ̀pá àṣíá náà pọ̀ mọ́ pin 3.3 V lórí ESP32. Ọ̀pá àṣíá náà ní àwọn pin ìjàde analog méjì: so ìjàde ẹ̀gbẹ́ X (tí a pè ní VRX) pọ̀ mọ́ pin 34 lórí ESP32 àti ìjàde ẹ̀gbẹ́ Y (tí a pè ní VRY) pọ̀ mọ́ pin 35.
Fún ìjàde bọ̀tìnnì náà, so pin bọ̀tìnnì náà pọ̀ mọ́ pin 33 lórí ESP32. Pin yìí yóò ka títẹ bọ̀tìnnì náà gẹ́gẹ́ bí ìfidánilẹ́yìn oní nọ́ńbà kan. Rí i pé àwọn ìsopọ̀ náà dúró ṣinṣin láti yẹra fún àwọn ìṣòro tí ó lè wáyé lẹ́ẹ̀kọ̀ọ̀kan. Bí ìsopọ̀ rẹ bá yàtọ̀ sí ti fídíò náà (nínú fídíò ní 02:30), ṣe àtúnṣe ní ìbámu pẹ̀lú àwọn ìlànà kanna fún àwọn ìsopọ̀ analog àti oní nọ́ńbà.
Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà
Nínú kóòdù náà, a bẹ̀rẹ̀ nípa ṣíṣàlàyé àwọn ìwọ̀n tí ó dúró ṣinṣin fún àwọn pin ọ̀pá àṣíá náà. Àwọn ìdámọ̀ xAxis, yAxis, àti btn ni a ṣètò sí 34, 35, àti 33, ní ọ̀kọ̀ọ̀kan. Èyí jẹ́ kí ó rọrùn láti tọ́ka sí àwọn pin wọ̀nyí jákèjádò ètò náà.
#define xAxis 34
#define yAxis 35
#define btn 33
Nínú iṣẹ́ setup(), a bẹ̀rẹ̀ ìbánisọ̀rọ̀ serial (serial communication) àti a ṣètò ipo pin bọ̀tìnnì náà sí ìfidánilẹ́yìn (input). Èyí ń múra ESP32 láti ka àwọn ìsọfúnni láti ọ̀pá àṣíá náà àti láti fi wọ́n ránṣẹ́ sí ojú àkíyèsí serial (serial monitor).
void setup() {
Serial.begin(115200);
pinMode(btn, INPUT);
}
Nínú loop(), a ka àwọn iye analog fún àwọn ẹ̀gbẹ́ X àti Y ti ọ̀pá àṣíá náà nípa lílo analogRead() àti a fi wọ́n pamọ́ sínú xValue àti yValue. A ka ipo bọ̀tìnnì náà nípa lílo digitalRead() àti a fi pamọ́ sínú btnValue. Ní ìparí, a tẹ àwọn iye wọ̀nyí sí ojú àkíyèsí serial.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Lúùpù yìí ń mú àwọn iye náà ṣe àtúnṣe nígbà gbogbo, tí ó ń pèsè ìfidánilẹ́yìn ní àkókò gidi lórí ìṣísẹ̀ ọ̀pá àṣíá náà àti títẹ bọ̀tìnnì. Fún kóòdù tí ó pé, jọ̀wọ́ tọ́ka sí kóòdù kíkún tí a gbé kalẹ̀ nísàlẹ̀ àpilẹ̀kọ yìí.
Ìfihàn / Ohun Tí O Lè Retí
Nígbà tí ìsopọ̀ náà bá ti parí àti tí a ti gbé kóòdù náà sílẹ̀, ojú àkíyèsí serial yóò fi àwọn iye X àti Y hàn pẹ̀lú ipo bọ̀tìnnì náà. Bí o ṣe ń gbé ọ̀pá àṣíá náà, àwọn iye náà yóò yípadà ní ìbámu, tí yóò fi ipò rẹ̀ hàn. Títẹ bọ̀tìnnì náà yóò yí ipo rẹ̀ padà láàárín gíga àti kékèké.
Awọn àṣìṣe tí ó wọ́pọ̀ pẹ̀lú àṣìṣe ìsopọ̀ oníná, èyí tí ó lè yọrí sí àwọn input tí ó ṣíṣẹ́ lọ́fẹ̀ẹ́ tàbí kò sí ìdáhùn láti ọ̀dọ̀ joystick. Rí i dájú pé àwọn pin tí ó tọ́ ni a lò àti pé àwọn resistor ìfàṣẹ́sí-oke ni a ṣe fún switch náà. Wo fídíò náà fún àwọn ìfihàn tí ó wúlò ti àwọn ìwà wọ̀nyí (nínú fídíò ní 13:00).
Àwọn Àkókò Fídíò
- 00:00 Ìbẹ̀rẹ̀
- 1:47 Ìfihàn sí XY Joystick
- 7:32 Wíwọn àwọn iye Joystick
- 8:40 Ìṣàlàyé ìsopọ̀ oníná
- 11:06 Ìṣàlàyé kóòdù Arduino fún Joystick pẹ̀lú ESP32
- 14:43 Yíyàn bọ́ọ̀dù ESP32 àti ibùdó COM nínú Arduino IDE
- 16:24 Ìfihàn ìlò joystick tí ó rọrùn
- 19:20 Ṣíṣàwárí ipò kóòdù joystick pẹ̀lú buzzer
- 21:16 Ìfihàn ṣíṣàwárí ipò
// Define constants for the x and y axis and the button pins
#define xAxis 34
#define yAxis 35
#define btn 33
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
// Set the mode of the button pin to input
pinMode(btn, INPUT);
}
void loop() {
// Read the analog value for x,y axis
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
// Read the digital value from the button pin
int btnValue = digitalRead(btn);
// print out the values
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Common Course Links
Common Course Files
Orisun & itọkasi
-
Iwe-ẹriESP32 Tutorial 26/55- SunFounder doc page for joystickdocs.sunfounder.com
Fáìlìs📁
Ko si awọn faili ti o wa.