# https://bipes.net.br/pico/ui/#jyogt6
from machine import Pin
import neopixel
import time
numberOfPixels = None
k = None
def upRange(start, stop, step):
while start <= stop:
yield start
start += abs(step)
def downRange(start, stop, step):
while start >= stop:
yield start
start -= abs(step)
def HSL_to_RGB(h, s, l):
h, s, l = h/360, s/100, l/100
def hue2rgb (p, q, t):
if(t < 0.): t += 1
if(t > 1.): t -= 1
if(t < 1/6): return p + (q - p) * 6 * t
if(t < 1/2): return q
if(t < 2/3): return p + (q - p) * (2/3 - t) * 6
return p
q = l * (1 + s) if l < 0.5 else l + s - l * s
p = 2 * l - q
r, g, b = hue2rgb(p, q, h + 1/3), hue2rgb(p, q, h), hue2rgb(p, q, h - 1/3)
return (int(r * 255), int(g * 255), int(b * 255))
numberOfPixels = 60
np=neopixel.NeoPixel(Pin(13),numberOfPixels)
while True:
k_end = float(numberOfPixels - 1)
for k in (0 <= k_end) and upRange(0, k_end, 1) or downRange(0, k_end, 1):
np[k]=(0,0,0)
np.write()
time.sleep_ms(50)
k_end2 = float(numberOfPixels - 1)
for k in (0 <= k_end2) and upRange(0, k_end2, 1) or downRange(0, k_end2, 1):
np[k]=HSL_to_RGB((k * 6),70.8,52.9)
np.write()
time.sleep_ms(50)