Analog joystick (KY-023) with ESP32
Supply 3.3 V
Bus ANALOG
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| GND | Ground | GND | |
| +5V | Power | 3V3 | Connect to 3V3 anyway, so the outputs stay within the ADC range |
| VRX | Analog output | D34 | To an ADC pin (prefer ADC1: GPIO 32 to 39) |
| VRY | Analog output | D35 | To an ADC pin (prefer ADC1: GPIO 32 to 39) |
| SW | Output (the part drives it) | D25 | Button: LOW when pressed. Use INPUT_PULLUP |
Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.
Starter code (Arduino)
void setup() { Serial.begin(115200); }
void loop() {
int mv = analogReadMilliVolts(34); // VRX on GPIO 34
Serial.println(mv);
delay(200);
}
Sources
- Joy-IT KY-023 datasheet, Pins GND, +5V, VRx, VRy, SW; two 10 kΩ potentiometers
Try it in 3D in BoardPilot
Analog joystick (KY-023) on other boards: wiring and code
Arduino Mega 2560 R3 Arduino Nano Arduino Uno R3 WeAct Black Pill STM32F411CE ESP32-C3-DevKitM-1 ESP32-S3-DevKitC-1 Nordic nRF52840 DK NUCLEO-F401RE Raspberry Pi Pico 2 Raspberry Pi Pico W Raspberry Pi Pico Teensy 4.1
Learn the basics
Lesson: ADC: reading the analog world Lesson: GPIO: pins in and out ADC (analog-to-digital converter) GPIO
Related parts
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.