Skip to content

Electronic components: Analog Joystick

The analog joystick is one of those electronic components you have certainly used while playing video games:

You can move the joystick around, and you can also click it from top to bottom:

Any action performed will send the appropriate electronic signals to the circuit it's connected to.

The 5 pins of the joystick are:

  • GND, the input LOW signal
  • +5V, the input HIGH signal, can also be 3.3V when using a 3.3V based device
  • VRx, the analog signal that represents the position of the joystick on the x axis
  • VRy, the analog signal that represents the position of the joystick on the y axis
  • SW, short for switch, is the digital value LOW when pressed, otherwise HIGH

You connect VRx and VRy to an analog input pin to get their value.

Analog inputs range from 0 to 1023 since they use a 10 bits resolution.

When watching the joystick with the pins on the left, the X axis values assumes values from 0 (full left) to 1023 (full right) and 498 in the middle. The Y axis values assumes values from 0 (top) to 1023 (bottom) and 498 in the middle.

Assuming VRx is connected to A0 and VRy to A1:

int x = analogRead(A0);
int y = analogRead(A1);

A simple program that prints the values is this:

void setup() {

void loop() {
  int x = analogRead(A0);
  int y = analogRead(A1);
  Serial.print("X = ");
  Serial.print("\tY = ");

You can also think of them as voltage values. Assuming a 5V positive voltage, you can multiply the value you get by 5.0, and then divide it by 1023 to get a 0 to 5 range:

x = analogRead(A0);
y = analogRead(A1);

float x_val = (x * 5.0) / 1023;

You can perform a similar calculation to get the values relative to a 3.3V Vcc.



You might be interested in those things I do:

  • Learn to code in THE VALLEY OF CODE, your your web development manual
  • Find a ton of Web Development projects to learn modern tech stacks in practice in THE VALLEY OF CODE PRO
  • I wrote 16 books for beginner software developers, DOWNLOAD THEM NOW
  • Every year I organize a hands-on cohort course coding BOOTCAMP to teach you how to build a complex, modern Web Application in practice (next edition February-March-April-May 2024)
  • Learn how to start a solopreneur business on the Internet with SOLO LAB (next edition in 2024)
  • Find me on X

Related posts that talk about electronics: