2025-02-12 20:45:05
##### CircuitPython 8.2.10 ################
##### https://circuitpython.org/downloads #
###########################################
# Імпорт необхідних бібліотек
import board
import digitalio
import pwmio
import time
# Список світлодіодів, підключених до відповідних цифрових контактів
leds = [pwmio.PWMOut(getattr(board, f"GP{n}")) for n in range(8)]
# Максимальне значення duty_cycle
maxpwm = 65535
# Функція для поступового ввімкнення світлодіода
def encender_led(led_index, speed):
duty = 1 # Початкове значення duty_cycle
for i in range(maxpwm):
duty += speed # Збільшення duty_cycle на величину speed
if duty < 0:
duty = 0 # Обмеження duty_cycle мінімальним значенням
elif duty > maxpwm:
duty = maxpwm # Обмеження duty_cycle максимальним значенням
break # Вихід із циклу, якщо duty_cycle досягнуто максимуму
leds[led_index].duty_cycle = duty # Встановлення duty_cycle для світлодіода
time.sleep(0.00001) # Пауза для плавного переходу
# Функція для поступового вимкнення світлодіода
def apagar_led(led_index, speed):
duty = maxpwm # Початкове значення duty_cycle (максимальна яскравість)
for i in range(maxpwm):
duty -= speed # Зменшення duty_cycle на величину speed
if duty < 0:
duty = 0 # Обмеження duty_cycle мінімальним значенням
break # Вихід із циклу, якщо duty_cycle досягнуто мінімуму
elif duty > maxpwm:
duty = maxpwm # Обмеження duty_cycle максимальним значенням
leds[led_index].duty_cycle = duty # Встановлення duty_cycle для світлодіода
time.sleep(0.00001) # Пауза для плавного переходу
# Головний цикл програми (безкінечний)
while True:
# Ввімкнення світлодіодів по черзі з певною швидкістю
for i in range(len(leds)):
encender_led(i, 70)
time.sleep(0.5) # Пауза між вмиканням та вимиканням
# Вимкнення світлодіодів по черзі з певною швидкістю
# for i in range(len(leds) - 1, -1, -1): # розкоментувати для зворотного порядку
for i in range(len(leds)):
apagar_led(i, 70)
time.sleep(0.5) # Пауза між вимиканням та вмиканням
Back to list