Это моя попытка замирания светодиодов с помощью моего RPI с использованием программного обеспечения ШИМ:
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
# set up GPIO pin for output
GPIOPin = 7
GPIO.setup(GPIOPin, GPIO.OUT)
# initialize PWM variable
RPWM = GPIO.PWM(GPIOPin, 100)
# start LED fading
RPWM.start(0)
try:
while 1:
for dc in range(0, 101, 5):
RPWM.ChangeDutyCycle(dc)
time.sleep(0.1)
for dc in range(100, -1, -5):
RPWM.ChangeDutyCycle(dc)
time.sleep(0.1)
except KeyboardInterrupt:
pass
RPWM.stop()
GPIO.cleanup()
Но я бы хотел сделать логарифмическое замирание, чтобы процесс затухания казался линейным длячеловеческий глаз.
Так что я нашел что-то вроде y = pow(2, log2(b) * (x+1) / a) - 1
с a
в качестве числа шагов и b
в качестве разрешения ШИМ.
Но я думаю, что это неправильная вещь для использования.