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