46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import time
|
|
|
|
import board
|
|
import pwmio
|
|
from digitalio import DigitalInOut, Direction
|
|
|
|
# PWM (fading) LEDs are connected on D0 (PWM not avail on D1)
|
|
pwm_leds = board.D0
|
|
pwm = pwmio.PWMOut(pwm_leds, frequency=1000, duty_cycle=0)
|
|
|
|
# digital LEDs connected on D2
|
|
digital_leds = DigitalInOut(board.D2)
|
|
digital_leds.direction = Direction.OUTPUT
|
|
brightness = 0 # how bright the LED is
|
|
fade_amount = 1285 # 2% steping of 2^16
|
|
counter = 0 # counter to keep track of cycles
|
|
|
|
while True:
|
|
|
|
# And send to LED as PWM level
|
|
pwm.duty_cycle = brightness
|
|
|
|
# change the brightness for next time through the loop:
|
|
brightness = brightness + fade_amount
|
|
|
|
print(brightness)
|
|
|
|
# reverse the direction of the fading at the ends of the fade:
|
|
if brightness <= 0:
|
|
fade_amount = -fade_amount
|
|
counter += 1
|
|
elif brightness >= 65535:
|
|
fade_amount = -fade_amount
|
|
counter += 1
|
|
|
|
# wait for 15 ms to see the dimming effect
|
|
time.sleep(.015)
|
|
|
|
# turns on the other LEDs every four times through the fade by
|
|
# checking the modulo of the counter.
|
|
# the modulo function gives you the remainder of
|
|
# the division of two numbers:
|
|
if counter % 4 == 0:
|
|
digital_leds.value = True
|
|
else:
|
|
digital_leds.value = False
|