from neopixel import NeoPixel
import machine

# Configuración del anillo de LEDS
num_leds = 18  # Número de LEDs en el anillo
pin_led = machine.Pin(4)  # Pin GPIO al que está conectado el anillo WS2812
np = NeoPixel(pin_led, num_leds)

# Lista de colores disponibles
colores_disponibles = [
    (255, 0, 0),     # Rojo
    (255, 128, 0),   # Naranja
    (255, 255, 0),   # Amarillo
    (0, 255, 0),     # Verde
    (0, 255, 255),   # Cian
    (0, 0, 255),     # Azul
    (128, 0, 255),   # Morado
    (255, 0, 255)    # Magenta
]

# Inicializa el índice de color actual
indice_color_actual = 0

# Establece la hora manualmente (HH:MM)
hora_manual = (6, 0)  # Por ejemplo, establece la hora a las 12:00

try:
    while True:
        # Imprime la hora actual en consola
        print("Hora actual: {:02d}:{:02d}".format(hora_manual[0], hora_manual[1]))

        # Obtiene el color correspondiente del índice actual
        color_seleccionado = colores_disponibles[indice_color_actual]

        # Asigna el color correspondiente
        for i in range(num_leds):
            np[i] = color_seleccionado

        # Actualiza los LEDs con el color asignado
        np.write()

        # Permite al usuario modificar la hora manualmente
        nueva_hora = input("Ingrese la hora en formato HH:MM (o presione Enter para mantener la hora actual): ")
        if nueva_hora:
            try:
                hora_manual = tuple(map(int, nueva_hora.split(":")))
            except ValueError:
                print("Formato de hora no válido. Use HH:MM.")

        # Incrementa el índice de color actual
        indice_color_actual = (indice_color_actual + 1) % len(colores_disponibles)

except KeyboardInterrupt:
    pass