KY-023 Dual Axis XY Joystick Module — Analog X/Y + Push Button, 3.3V/5V, Arduino Compatible
KY-023 Dual Axis XY Joystick Module — Analog X/Y + Push Button, 3.3V/5V, Arduino Compatible
Couldn't load pickup availability
Add intuitive directional control to your project with the KY-023 Dual Axis XY Joystick Module. This thumb-stick controller provides analog X and Y axis output (0–5V) for smooth, proportional movement control, plus an integrated push-button switch for mode selection or action triggers. The self-centering spring mechanism returns the stick to center when released — just like a game controller.
Connect three wires to your Arduino's analog and digital inputs, upload a few lines of code, and you have full 2D directional control with a button. No libraries required, no complex setup — it works right out of the box.
⚡ Key Features
- Dual-axis analog output: Two 10KΩ potentiometers provide smooth, proportional X and Y axis readings (0V–5V range, ~2.5V at center).
- Integrated push-button switch: Press the joystick down for a digital input — perfect for mode switching, menu selection, or action triggers. Pulls to ground when pressed.
- Self-centering: Spring-loaded mechanism returns the stick to center position when released.
- 3.3V and 5V compatible: Works with both 3.3V and 5V microcontrollers (5V recommended for full analog range).
- Simple 5-pin interface: Clearly labeled VCC, GND, VRx, VRy, and SW pins — connect directly to your microcontroller with jumper wires.
- No libraries needed: Uses standard analogRead() and digitalRead() functions — works immediately with basic Arduino code.
- Compact: Just 34mm × 26mm × 32mm — fits easily on breadboards and inside project enclosures.
🔧 How It Works
The module contains two 10KΩ potentiometers mounted at 90° to each other, connected to a thumb-stick via a gimbal mechanism. Each potentiometer acts as a voltage divider:
- Center position: Both VRx and VRy output ~2.5V (analog reading ~512 on Arduino's 10-bit ADC).
- Full left / full down: Output drops toward 0V (analog reading ~0).
- Full right / full up: Output rises toward 5V (analog reading ~1023).
- Button press: Pressing the stick down closes the SW switch, pulling the pin to GND (reads LOW with pull-up enabled).
Orientation tip: For correct X-Y orientation (X horizontal, Y vertical), mount the module with the pins facing to the left.
📌 Pinout
| Pin | Label | Connect To | Function |
|---|---|---|---|
| 1 | VCC | Arduino 5V (or 3.3V) | Power supply |
| 2 | GND | Arduino GND | Ground |
| 3 | VRx | Analog pin (e.g., A0) | X-axis analog output (0–5V) |
| 4 | VRy | Analog pin (e.g., A1) | Y-axis analog output (0–5V) |
| 5 | SW | Digital pin (e.g., D2) | Push-button switch (active LOW, needs pull-up) |
🎯 Perfect For
- Robotics control — drive motors proportionally for smooth robot movement, control robotic arms and grippers
- RC vehicles & drones — build custom transmitters with proportional throttle and steering
- Game controllers — create custom game pads for PC, retro gaming, or arcade cabinets
- Camera pan/tilt — control servo-driven camera gimbals and pan-tilt mechanisms
- Menu navigation — scroll through menus on OLED/LCD displays with intuitive stick control
- IoT & home automation — manual override control for smart home devices
- STEM education — teach analog input, voltage dividers, and human-machine interfaces
- Any project that needs intuitive 2D directional input with a button
📐 Specifications
- Model: KY-023
- Axes: X and Y (analog output)
- Switch: Push-button (digital, active LOW)
- Operating voltage: 3.3V – 5V DC
- Potentiometer type: 10KΩ ±20%, linear taper
- Analog output range: 0V to VCC (proportional to stick position)
- Center output: ~VCC/2 (approximately 2.5V at 5V supply)
- Switch activation: Pulls to ground when pressed (requires pull-up resistor)
- Interface: 5-pin header (VCC, GND, VRx, VRy, SW)
- Dimensions: 34mm × 26mm × 32mm (1.3" × 1.0" × 1.3")
🔌 Compatible With
- Arduino Uno, Mega, Nano, Leonardo, and all compatible boards
- ESP32, ESP8266 (use 3.3V supply; note: ESP32 ADC is 12-bit, 0–4095 range)
- Raspberry Pi (requires external ADC — Pi has no built-in analog inputs)
- STM32, AVR, PIC, and other microcontrollers with analog inputs
- Any 3.3V or 5V system with at least 2 analog input pins and 1 digital input pin
📦 Package Contents
- 1 × KY-023 Dual Axis XY Joystick Module
Jumper wires, Arduino board, and breadboard are not included.
📄 Documentation & Resources
Share
