import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
# Настройка режима нумерации пинов
GPIO.setmode(GPIO.BCM)
# Список пинов, к которым подключены светодиоды
led_pins = [4, 17, 27, 16, 20, 21, 12, 5, 6, 13, 19, 26]
# Настройка всех пинов как выходы
for pin in led_pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW) # Изначально все выключены
try:
while True:
# Вариант 1: Бегущая волна (каждый диод включается по очереди)
for pin in led_pins:
GPIO.output(pin, GPIO.HIGH) # Включаем текущий диод
time.sleep(0.2) # Пауза 0.2 секунды
GPIO.output(pin, GPIO.LOW) # Выключаем текущий диод
# Вариант 2: Попеременное мигание всеми диодами (раскомментируйте, если нужен этот вариант)
# Все диоды включаются одновременно на 0.5 сек, затем выключаются на 0.5 сек
"""
for pin in led_pins:
GPIO.output(pin, GPIO.HIGH)
time.sleep(0.5)
for pin in led_pins:
GPIO.output(pin, GPIO.LOW)
time.sleep(0.5)
"""
# Вариант 3: Ваш исходный паттерн (включить-пауза-выключить-пауза) для всех диодов сразу
# (раскомментируйте, если нужен этот вариант)
"""
for pin in led_pins:
GPIO.output(pin, GPIO.HIGH)
time.sleep(1)
for pin in led_pins:
GPIO.output(pin, GPIO.LOW)
time.sleep(1)
"""
except KeyboardInterrupt:
# Очистка при прерывании программы (Ctrl+C)
print("\nПрограмма остановлена пользователем")
finally:
# Выключаем все диоды и освобождаем GPIO
for pin in led_pins:
GPIO.output(pin, GPIO.LOW)
GPIO.cleanup()
print("GPIO очищены")