import machine
import utime
import sys

# Detectar plataforma y asignar pines adecuados
if sys.platform == "rp2":
    # Raspberry Pi Pico W
    led_onboard = machine.Pin("LED", machine.Pin.OUT)   # LED onboard
    led_rojo = machine.Pin(6, machine.Pin.OUT)   # GPIO 6 para LED rojo
    led_verde = machine.Pin(7, machine.Pin.OUT)  # GPIO 7 para LED verde
    led_azul = machine.Pin(8, machine.Pin.OUT)   # GPIO 8 para LED azul
    boton_negro = machine.Pin(21, machine.Pin.IN, machine.Pin.PULL_UP)  # GPIO 21 para botón negro
    boton_azul = machine.Pin(20, machine.Pin.IN, machine.Pin.PULL_UP)   # GPIO 20 para botón azul
    boton_rojo = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP)   # GPIO 19 para botón rojo
    boton_verde = machine.Pin(18, machine.Pin.IN, machine.Pin.PULL_UP)  # GPIO 18 para botón verde
elif sys.platform == "esp32":
    # ESP32 (ajusta estos pines si lo necesitas)
    led_onboard = None  # ESP32 no tiene LED onboard por defecto
    led_rojo = machine.Pin(2, machine.Pin.OUT)  # GPIO 2 para LED rojo
    led_verde = machine.Pin(4, machine.Pin.OUT)  # GPIO 4 para LED verde
    led_azul = machine.Pin(5, machine.Pin.OUT)  # GPIO 5 para LED azul
    boton_negro = machine.Pin(21, machine.Pin.IN, machine.Pin.PULL_UP)  # GPIO 21 para botón negro
    boton_azul = machine.Pin(20, machine.Pin.IN, machine.Pin.PULL_UP)   # GPIO 20 para botón azul
    boton_rojo = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP)   # GPIO 19 para botón rojo
    boton_verde = machine.Pin(18, machine.Pin.IN, machine.Pin.PULL_UP)  # GPIO 18 para botón verde

# Función para manejar los LEDs según el botón presionado
def manejar_leds():
    if boton_negro.value() == 0:  # Botón negro presionado
        led_rojo.value(0)
        led_verde.value(0)
        led_azul.value(0)
    elif boton_azul.value() == 0:  # Botón azul presionado
        led_rojo.value(0)
        led_verde.value(0)
        led_azul.value(1)
    elif boton_rojo.value() == 0:  # Botón rojo presionado
        led_rojo.value(1)
        led_verde.value(0)
        led_azul.value(0)
    elif boton_verde.value() == 0:  # Botón verde presionado
        led_rojo.value(0)
        led_verde.value(1)
        led_azul.value(0)
    else:
        led_rojo.value(0)
        led_verde.value(0)
        led_azul.value(0)

# Bucle principal
while True:
    manejar_leds()
    if led_onboard is not None:
        led_onboard.value(0)  # Apagar el LED onboard
        utime.sleep(0.5)  # Pequeña pausa para evitar lecturas rápidas
        led_onboard.value(1)  # Encender el LED onboard
        utime.sleep(0.5)  # Pequeña pausa para evitar lecturas rápidas