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) # Пауза між вимиканням та вмиканням
[file-name 000008_2025-02-12_20-45-05.txt]