🎮 PS2 Joystick Module Breakout Sensor – Dual-Axis Analog Joystick with Push Button for Arduino, Raspberry Pi & Robotics
The PS2 Joystick Module Breakout Sensor is a high-quality analog joystick similar to the ones used in PlayStation 2 or Xbox controllers. It allows you to easily capture 2D directional input (X and Y axes) and includes a built-in select push button when the joystick is pressed down.
This module is perfect for controlling robots, RC cars, drones, and DIY electronics projects requiring smooth analog input. Each axis uses a 10kΩ potentiometer that outputs an analog voltage proportional to the joystick’s position, while the built-in switch provides a digital signal when pressed.
It can be connected directly to Arduino, ESP32, Raspberry Pi, AVR, PIC, or ARM microcontrollers and read through the analog input pins.
Key Features
- Dual-axis analog joystick (X & Y) with push button (Z-axis)
- Each axis controlled by a 10kΩ potentiometer
- Outputs analog voltage (0V–5V) corresponding to joystick position
- Push-down switch provides a digital signal for “Select” or “Fire” actions
- Highly reliable and smooth mechanical control
- Compatible with Arduino, Raspberry Pi, ESP8266, ESP32, and more
- Perfect for gaming controls, robotics, and creative DIY projects
Technical Specifications
- Operating Voltage: 5V DC
- Output: Two analog (X, Y) + One digital (SW)
- Resistance: 10kΩ per axis
- Interface Type: 2.54mm standard pin headers
- Dimensions: ~34mm × 27mm × 25mm
- Mounting Holes: Yes
- Life Expectancy: Long operating life and durable design
Pin Configuration
| Pin | Description |
|---|---|
| GND | Ground (0V) |
| +5V | Power Supply |
| VRx | Analog output for X-axis movement |
| VRy | Analog output for Y-axis movement |
| SW | Digital output from push button (LOW when pressed) |
Output Characteristics
- Center position: ~2.5V (neutral)
- Full movement in one direction: up to 5V
- Full movement in opposite direction: down to 0V
- Button press: Digital LOW (0V)
Circuit Diagram
The following shows how to connect the PS2 joystick module to an Arduino board for X, Y, and button readings:
- +5V → 5V on Arduino
- GND → GND
- VRx → A0 (X-axis input)
- VRy → A1 (Y-axis input)
- SW → D2 (Button input)
Example Arduino Code
// PS2 Joystick Module Example
const int VRx = A0;
const int VRy = A1;
const int SW = 2;
int xValue, yValue, buttonState;
void setup() {
Serial.begin(9600);
pinMode(SW, INPUT_PULLUP); // Button is active LOW
}
void loop() {
xValue = analogRead(VRx);
yValue = analogRead(VRy);
buttonState = digitalRead(SW);
Serial.print("X: "); Serial.print(xValue);
Serial.print(" | Y: "); Serial.print(yValue);
Serial.print(" | Button: ");
Serial.println(buttonState == LOW ? "Pressed" : "Released");
delay(300);
}
Applications
- Robotics and RC vehicle control
- Gaming and simulation controllers
- DIY electronics projects
- Camera or servo pan-tilt systems
- Mechatronics and automation
Package Includes
- 1 × PS2 Joystick Module Breakout Sensor
- 1 × Detachable Joystick Knob Hat
Notes
- Ensure your microcontroller analog pins support 5V input (use voltage dividers for 3.3V boards).
- The joystick returns to center position automatically when released.
- Use analog filtering in software for smoother response.





Reviews
There are no reviews yet.