Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use KY-023 Dual Axis Joystick Module: Examples, Pinouts, and Specs

Image of KY-023 Dual Axis Joystick Module
Cirkit Designer LogoDesign with KY-023 Dual Axis Joystick Module in Cirkit Designer

Introduction

The KY-023 Dual Axis Joystick Module is an input device that translates the user's physical movement into electronic signals. It is commonly used in electronic projects for controlling motors, servos, and other devices, providing an intuitive interface for two-dimensional control. The joystick module includes two potentiometers for the X and Y axes, which output analog signals corresponding to the position of the stick.

Explore Projects Built with KY-023 Dual Axis Joystick Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino 101 and KY-023 Joystick Controlled Interface
Image of Joystick: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
This circuit interfaces a KY-023 Dual Axis Joystick Module with an Arduino 101. The joystick's X and Y axis outputs are connected to the analog inputs A0 and A1 of the Arduino, allowing it to read the joystick's position.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Controlled Dual Joystick Servo Manipulator
Image of MeArmMine: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
This circuit is designed to control multiple servos using two KY-023 Dual Axis Joystick Modules interfaced with an Arduino UNO. The joysticks provide analog input to the Arduino, which then processes these signals to adjust the position of the servos accordingly. This setup could be used for precise control in applications such as robotic arms or remote-controlled vehicles.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Joystick-Controlled Bluetooth Module with Battery Power
Image of padelpro transmitter: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
This circuit is a wireless joystick controller that uses an Arduino Nano to read analog signals from a KY-023 Dual Axis Joystick Module and transmits the data via an HC-05 Bluetooth Module. The system is powered by a 18650 Li-Ion battery with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled Servomotor with Joystick Interface
Image of coba aja: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
This circuit consists of an Arduino Nano microcontroller interfaced with a KY-023 Dual Axis Joystick Module and an SG90 Servomotor. The joystick provides two-axis input to the Arduino, which then processes the input and controls the position of the servomotor accordingly. The Breadboard Power Module supplies power to the system, with connections indicating that both 5V and GND are distributed to the components that require them.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with KY-023 Dual Axis Joystick Module

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Joystick: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
Arduino 101 and KY-023 Joystick Controlled Interface
This circuit interfaces a KY-023 Dual Axis Joystick Module with an Arduino 101. The joystick's X and Y axis outputs are connected to the analog inputs A0 and A1 of the Arduino, allowing it to read the joystick's position.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MeArmMine: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
Arduino-Controlled Dual Joystick Servo Manipulator
This circuit is designed to control multiple servos using two KY-023 Dual Axis Joystick Modules interfaced with an Arduino UNO. The joysticks provide analog input to the Arduino, which then processes these signals to adjust the position of the servos accordingly. This setup could be used for precise control in applications such as robotic arms or remote-controlled vehicles.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of padelpro transmitter: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
Arduino Nano Joystick-Controlled Bluetooth Module with Battery Power
This circuit is a wireless joystick controller that uses an Arduino Nano to read analog signals from a KY-023 Dual Axis Joystick Module and transmits the data via an HC-05 Bluetooth Module. The system is powered by a 18650 Li-Ion battery with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of coba aja: A project utilizing KY-023 Dual Axis Joystick Module in a practical application
Arduino Nano Controlled Servomotor with Joystick Interface
This circuit consists of an Arduino Nano microcontroller interfaced with a KY-023 Dual Axis Joystick Module and an SG90 Servomotor. The joystick provides two-axis input to the Arduino, which then processes the input and controls the position of the servomotor accordingly. The Breadboard Power Module supplies power to the system, with connections indicating that both 5V and GND are distributed to the components that require them.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Robotics control interfaces
  • Video game controllers
  • Cursor movement on displays
  • Remote control vehicles
  • Educational projects and prototypes

Technical Specifications

Key Technical Details

  • Operating Voltage: 3.3V to 5V
  • Output Signal: Analog (two axes)
  • Built-in switch (activated by pressing down on the joystick)

Pin Configuration and Descriptions

Pin Description
GND Ground
+5V Power supply (3.3-5V)
VRx X-axis analog output
VRy Y-axis analog output
SW Switch button output

Usage Instructions

How to Use the Component in a Circuit

  1. Connect the +5V pin to the 5V output on your microcontroller (e.g., Arduino UNO).
  2. Connect the GND pin to a ground pin on your microcontroller.
  3. Connect the VRx pin to an analog input pin on your microcontroller to read the X-axis position.
  4. Connect the VRy pin to another analog input pin to read the Y-axis position.
  5. Optionally, connect the SW pin to a digital input pin if you wish to use the built-in switch.

Important Considerations and Best Practices

  • Ensure that the power supply voltage does not exceed the module's maximum rating.
  • Use pull-up resistors if necessary for the switch to ensure a stable digital input.
  • Calibrate the joystick's center position in your software to account for any offset in the resting position of the potentiometers.

Example Code for Arduino UNO

// KY-023 Dual Axis Joystick Module example for Arduino UNO

const int xAxisPin = A0; // Analog input pin for X-axis
const int yAxisPin = A1; // Analog input pin for Y-axis
const int buttonPin = 2; // Digital input pin for the button

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Initialize button pin as input with pull-up
  Serial.begin(9600);               // Start serial communication at 9600 baud
}

void loop() {
  int xPosition = analogRead(xAxisPin); // Read the X-axis position
  int yPosition = analogRead(yAxisPin); // Read the Y-axis position
  int buttonState = digitalRead(buttonPin); // Read the button state

  // Print the X and Y positions and button state to the serial monitor
  Serial.print("X: ");
  Serial.print(xPosition);
  Serial.print(" | Y: ");
  Serial.print(yPosition);
  Serial.print(" | Button: ");
  Serial.println(buttonState);

  delay(100); // Delay for a short period to reduce serial output rate
}

Troubleshooting and FAQs

Common Issues Users Might Face

  • Inaccurate Readings: If the joystick is not returning accurate readings, ensure that it is properly calibrated in your software.
  • Unstable or Noisy Signals: Adding a small capacitor across the power and ground near the joystick module can help filter noise.
  • Button Not Responding: Check the connection and ensure that the button pin is configured with the correct pull-up or pull-down setting.

Solutions and Tips for Troubleshooting

  • Double-check all connections and ensure that they are secure.
  • Verify that the power supply is within the specified range for the module.
  • Use the analogReference() function in Arduino if you are using a reference voltage other than the default 5V.

FAQs

Q: Can I use the KY-023 module with a 3.3V system? A: Yes, the module can operate at 3.3V, but the analog output range will be 0-3.3V instead of 0-5V.

Q: How can I increase the precision of the joystick readings? A: You can increase the precision by using the full range of the analog input and ensuring that the joystick is properly calibrated.

Q: Is it possible to use the joystick without the switch feature? A: Yes, the switch is optional. If you do not need the switch functionality, you can leave the SW pin disconnected.