Components:
Wiring:

Diagram:

Software:
// Joystick pins
const int joyX = A0;
const int joyY = A1;
// LED pins
const int ledLeft = 4;
const int ledRight = 5;
const int ledUp = 6;
const int ledDown = 7;
void setup() {
pinMode(ledLeft, OUTPUT);
pinMode(ledRight, OUTPUT);
pinMode(ledUp, OUTPUT);
pinMode(ledDown, OUTPUT);
Serial.begin(9600);
}
void loop() {
int x = analogRead(joyX);
int y = analogRead(joyY);
// Turn all LEDs off
digitalWrite(ledLeft, LOW);
digitalWrite(ledRight, LOW);
digitalWrite(ledUp, LOW);
digitalWrite(ledDown, LOW);
// Horizontal movement
if (x < 300) {
digitalWrite(ledLeft, HIGH);
}
else if (x > 700) {
digitalWrite(ledRight, HIGH);
}
// Vertical movement
if (y < 300) {
digitalWrite(ledDown, HIGH);
}
else if (y > 700) {
digitalWrite(ledUp, HIGH);
}
// Debug values (optional)
Serial.print("X: ");
Serial.print(x);
Serial.print(" Y: ");
Serial.println(y);
delay(50);
}