ESP32 Упатство 26/55 - Користење на џојстик со Arduino преземање акција | SunFounder's ESP32 IoT комплет
Во ова упатство, ќе научиме како да поврземе XY џојстик со ESP32 микроконтролерот од SunFounder, што ќе ни овозможи да ја детектираме неговата позиција и да преземеме акција врз основа на неговиот влез. Исто така, ќе интегрираме зумер кој се активира кога џојстикот ќе се помести на одредена позиција. Оваа комбинација ќе ни овозможи да креираме интерактивни проекти кои реагираат на корисничкиот влез во реално време.
XY џојстикот обезбедува два аналогни излези кои одговараат на X и Y позициите и прекинувач кој може да се притисне за да се активира акција. Со читање на вредностите од џојстикот, можеме да контролираме различни елементи во нашиот проект, како што се активирање на зумер или прикажување вредности на екранот. За целосно разбирање на процесот, задолжително погледнете го видеото за дополнителни сознанија (во видеото на 00:00).
Објаснување на хардверот
Главните компоненти за овој проект вклучуваат ESP32 микроконтролер, XY џојстик и зумер. ESP32 е разноврсна плоча која поддржува Wi-Fi и Bluetooth, што ја прави идеална за IoT проекти. XY џојстикот се состои од два променливи отпорници за X и Y оските и копче со прекинувач за дополнителен влез.
Џојстикот излегува аналогни сигнали кои одговараат на неговата позиција, кои се читаат од аналогните пинови на ESP32. Копчето обезбедува дигитален сигнал кога е притиснато. Зумерот е поврзан на дигитален излезен пин на ESP32, што овозможува да се активира или деактивира врз основа на позицијата на џојстикот.
Детали од техничката документација
| Производител | SunFounder |
|---|---|
| Број на дел | XY Joystick Module |
| Работен напон | 3.3 V – 5 V |
| Вредност на отпорник | 10 kΩ (по оска) |
| Максимална струја | 20 mA |
| Тип на прекинувач | Моментално копче |
| Димензии | Приближно 50 mm x 50 mm |
- Осигурете се дека џојстикот е напојуван со 3.3 V за компатибилност со ESP32.
- Користете pull-up отпорници за прекинувачот за да избегнете лебдечки влезови.
- Поврзете ги аналогните излези на ADC пиновите на ESP32 (34 за X, 35 за Y).
- Користете механизам за дебаунсирање на прекинувачот за да спречите лажно активирање.
- Следете ги нивоата на напон за да осигурите дека остануваат во безбедни работни граници.
Инструкции за поврзување

За да го поврзете џојстикот со ESP32, започнете со поврзување на ground пинот од џојстикот со ground пин на ESP32. Потоа, поврзете го VCC пинот на џојстикот со 3.3 V пинот на ESP32. Џојстикот има два аналогни излезни пина: поврзете го X-оската излез (означен како VRX) со пин 34 на ESP32 и Y-оската излез (означен како VRY) со пин 35.
За излезот на прекинувачот, поврзете го пинот на прекинувачот со пин 33 на ESP32. Овој пин ќе го чита притискањето на копчето како дигитален влез. Осигурете се дека врските се безбедни за да избегнете повремени проблеми. Ако вашето поврзување се разликува од видеото (во видеото на 02:30), прилагодете се соодветно додека ги следите истите принципи за аналогни и дигитални врски.
Примери на код и објаснување
Во кодот, започнуваме со дефинирање на константи за пиновите на џојстикот. Идентификаторите xAxis, yAxis и btn се поставени на 34, 35 и 33, соодветно. Ова го олеснува повикувањето на овие пинови низ целата програма.
#define xAxis 34
#define yAxis 35
#define btn 33
Во функцијата setup(), ја иницијализираме сериската комуникација и го поставуваме режимот на пинот за копчето на влез. Ова го подготвува ESP32 да чита податоци од џојстикот и да ги испраќа до серискиот монитор.
void setup() {
Serial.begin(115200);
pinMode(btn, INPUT);
}
Внатре во loop(), ги читаме аналогните вредности за X и Y оските на џојстикот користејќи analogRead() и ги складираме во xValue и yValue. Состојбата на копчето се чита со digitalRead() и се складира во btnValue. Конечно, ги печатиме овие вредности на серискиот монитор.
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
}
Оваа јамка континуирано ги ажурира вредностите, обезбедувајќи повратна информација во реално време за движењето на џојстикот и притискањата на копчето. За целосниот код, ве молиме погледнете го целосниот код вчитан под статијата.
Демонстрација / Што да очекувате
Кога поставувањето е завршено и кодот е вчитан, серискиот монитор треба да ги прикажува X и Y вредностите заедно со состојбата на копчето. Како што го движите џојстикот, вредностите ќе се менуваат соодветно, одразувајќи ја неговата позиција. Притискањето на копчето ќе ја менува неговата состојба помеѓу висока и ниска.
Вообичаени грешки вклучуваат неправилно поврзување, што може да доведе до лебдечки влезови или никаков одговор од џојстикот. Осигурајте се дека се користат точните пинови и дека отпорниците за повлекување нагоре се имплементирани за прекинувачот. Погледнете го видеото за практични демонстрации на овие однесувања (во видеото на 13:00).
Временски ознаки на видеото
- 00:00 Почеток
- 1:47 Вовед во XY џојстик
- 7:32 Мерење на вредностите на џојстикот
- 8:40 Објаснување на поврзувањето
- 11:06 Објаснување на Arduino кодот за џојстик со ESP32
- 14:43 Избор на ESP32 плоча и COM порта во Arduino IDE
- 16:24 Демонстрација на едноставна употреба на џојстик
- 19:20 Детектирање на позицијата на џојстикот со код и зумер
- 21:16 Демонстрација на детектирање на позицијата
// 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
Resources & references
-
DocumentationESP32 Tutorial 26/55- SunFounder doc page for joystickdocs.sunfounder.com
Files📁
No files available.