from machine import Pin, ADC
import time
# Setup joystick
joystick_y = ADC(27) # Asse Y su GPIO27 (ADC1)
joystick_x = ADC(26) # Asse X su GPIO26 (ADC0)
# Setup LED per le direzioni
led_su = Pin(2, Pin.OUT)
led_giu = Pin(3, Pin.OUT)
led_sinistra = Pin(5, Pin.OUT)
led_destra = Pin(4, Pin.OUT)
# Valori di riferimento joystick
CENTRO = 32768 # Valore centrale (65535/2)
SOGLIA = 10000 # Soglia per attivazione direzione
# Lista LED per spegnimento facile
tutti_led = [led_su, led_giu, led_sinistra, led_destra]
def spegni_tutti_led():
for led in tutti_led:
led.value(0)
while True:
# Leggi valori joystick
valore_x = joystick_x.read_u16()
valore_y = joystick_y.read_u16()
# Spegni tutti i LED prima di verificare la direzione
spegni_tutti_led()
# Verifica direzione X (sinistra-destra) - INVERTITA
if valore_x > (CENTRO + SOGLIA): # Cambiato < con >
led_sinistra.value(1)
elif valore_x < (CENTRO - SOGLIA): # Cambiato > con <
led_destra.value(1)
# Verifica direzione Y (su-giù)
if valore_y < (CENTRO - SOGLIA):
led_giu.value(1)
elif valore_y > (CENTRO + SOGLIA):
led_su.value(1)
# Possibilità di accendere LED diagonali
# Se il joystick è in posizione diagonale, si accenderanno due LED
time.sleep(0.1) # Piccolo ritardo per stabilità