124 lines
3.1 KiB
Python
124 lines
3.1 KiB
Python
# SPDX-FileCopyrightText: 2021 Brent Rubell for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""
|
|
'eight_leds.py'.
|
|
|
|
=================================================
|
|
lights up 8 leds with different animations
|
|
"""
|
|
import time
|
|
import board
|
|
import digitalio
|
|
|
|
delay_time = 0.1
|
|
|
|
led_pins = [
|
|
digitalio.DigitalInOut(board.D2),
|
|
digitalio.DigitalInOut(board.D3),
|
|
digitalio.DigitalInOut(board.D4),
|
|
digitalio.DigitalInOut(board.D5),
|
|
digitalio.DigitalInOut(board.D6),
|
|
digitalio.DigitalInOut(board.D7),
|
|
digitalio.DigitalInOut(board.D8),
|
|
digitalio.DigitalInOut(board.D9),
|
|
]
|
|
|
|
for pin in led_pins:
|
|
pin.switch_to_output()
|
|
|
|
|
|
def one_after_another_no_loop():
|
|
"""turns one LED on at a time, not looping at the end."""
|
|
led_pins[0].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[1].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[2].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[3].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[4].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[5].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[6].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[7].value = True
|
|
time.sleep(delay_time)
|
|
|
|
led_pins[7].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[6].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[5].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[4].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[3].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[2].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[1].value = False
|
|
time.sleep(delay_time)
|
|
led_pins[0].value = False
|
|
time.sleep(delay_time)
|
|
|
|
|
|
def one_after_another_loop():
|
|
"""turns one LED on at a time, looping at the end."""
|
|
for led in led_pins:
|
|
led.value = True
|
|
time.sleep(delay_time)
|
|
for led in led_pins[::-1]:
|
|
led.value = False
|
|
time.sleep(delay_time)
|
|
|
|
|
|
def one_on_at_a_time():
|
|
"""turns one LED on at a time, looping at the end."""
|
|
led_array_length = len(led_pins)
|
|
for i in range(10 * led_array_length):
|
|
j = i % led_array_length
|
|
led_pins[j].value = True
|
|
time.sleep(delay_time)
|
|
led_pins[j].value = False
|
|
|
|
|
|
def in_and_out():
|
|
"""fades the LEDs in and out."""
|
|
for i in range(3):
|
|
off_led = i - 1
|
|
if i == 0:
|
|
off_led = 3
|
|
on_led_1 = 3 - i
|
|
on_led_2 = 4 + i
|
|
off_led1 = 3 - off_led
|
|
off_led2 = 4 + off_led
|
|
for pin_range in led_pins:
|
|
for _ in range(10):
|
|
pin_range.value = True
|
|
time.sleep(delay_time)
|
|
pin_range.value = False
|
|
for i in range(3):
|
|
i = 3 - i
|
|
off_led = i + 1
|
|
if i == 3:
|
|
off_led = 0
|
|
on_led_1 = 3 - i
|
|
on_led_2 = 4 + i
|
|
off_led1 = 3 - off_led
|
|
off_led2 = 4 + off_led
|
|
led_pins[on_led_1].value = True
|
|
led_pins[on_led_2].value = True
|
|
led_pins[off_led1].value = False
|
|
led_pins[off_led2].value = False
|
|
time.sleep(delay_time)
|
|
|
|
|
|
while True:
|
|
one_after_another_no_loop()
|
|
# one_after_another_loop()
|
|
# one_on_at_a_time()
|
|
# in_and_out()
|