from machine import Pin
from time import sleep, time_ns
from neopixel import NeoPixel
NUM_LEDS = 16
check = False
i = 1
s_time = 0
colors = [1]
g1 = Pin(2, Pin.IN, Pin.PULL_UP)
pixels = NeoPixel(Pin(15),NUM_LEDS)
def animation(colors):
i = 0
colors.sort()
pixels.fill((0,0,0))
pixels.write()
sleep(0.3)
for c in colors:
if c == 1:
pixels[i] = (0,255,0)
elif c == 2:
pixels[i] = (0,0,255)
else:
pixels[i] = (255,0,0)
pixels.write()
i += 1
sleep(0.1)
pixels[0] = (0,255,0)
pixels.write()
while True:
if not g1.value():
if not check:
check = True
e_time = time_ns()
diff = (e_time - s_time) // 1_000_000
if diff < 1000:
pixels[i] = (0,255,0)
colors.append(1)
elif 1000 <= diff < 2000:
pixels[i] = (0,0,255)
colors.append(2)
else:
pixels[i] = (255,0,0)
colors.append(3)
pixels.write()
s_time = e_time
i += 1
if i == 16:
i = 1
animation(colors)
sleep(1)
colors = [1]
pixels.fill((0,0,0))
pixels[0] = (0,255,0)
pixels.write()
else:
check = False
sleep(0.01)