import machine
import neopixel
import time
# Настройки
LED_PIN = Pin(D1, Pin.OUT) # Пин, к которому подключены светодиоды
NUM_LEDS = 5 # Количество светодиодов
# Инициализация NeoPixel
np = neopixel.NeoPixel(machine.Pin(LED_PIN), NUM_LEDS)
# Цвет
colors = [
(255, 0, 0), # Красный
(0, 255, 0), # Зеленый
(0, 0, 255), # Синий
(255, 255, 0), # Желтый
(255, 0, 255) # Розовый
]
# Функция для установки цветов на светодиодах
def set_colors():
for i in range(num_leds):
np[i] = colors[i]
np.write() # Обновление состояния светодиодов
def wheel(pos):
"""Создает цветовой переход по радуге."""
if pos < 85:
return (pos * 3, 255 - pos * 3, 0)
elif pos < 170:
pos -= 85
return (255 - pos * 3, 0, pos * 3)
else:
pos -= 170
return (0, pos * 3, 255 - pos * 3)
def rainbow_cycle(wait):
"""Цикл радуги для всех светодиодов."""
for j in range(255): # Один полный цикл по цветам
for i in range(NUM_LEDS):
pixel_index = (i * 256 // NUM_LEDS) + j
np[i] = wheel(pixel_index & 255)
np.write()
time.sleep(wait)
# Основной цикл
try:
while True:
rainbow_cycle(0.1) # Запускаем радугу с задержкой 0.1 секунды
except KeyboardInterrupt:
for i in range(NUM_LEDS):
np[i] = (0, 0, 0) # Очищаем светодиоды при прерывании
np.write()