from machine import Pin
import time
import random
led_pins = [13, 12, 14, 27, 26, 25, 33]
leds = [Pin(p, Pin.OUT) for p in led_pins]
button = Pin(4, Pin.IN, Pin.PULL_UP)
def clear_leds():
for led in leds:
led.value(0)
def show(num):
clear_leds()
if num == 1:
leds[3].value(1)
elif num == 2:
leds[0].value(1); leds[6].value(1)
elif num == 3:
leds[0].value(1); leds[3].value(1); leds[6].value(1)
elif num == 4:
leds[0].value(1); leds[1].value(1); leds[5].value(1); leds[6].value(1)
elif num == 5:
leds[0].value(1); leds[1].value(1); leds[3].value(1); leds[5].value(1); leds[6].value(1)
elif num == 6:
leds[0].value(1); leds[1].value(1); leds[2].value(1)
leds[4].value(1); leds[5].value(1); leds[6].value(1)
while True:
# wait for stable press
if button.value() == 0:
time.sleep(0.1) # debounce
if button.value() == 0: # confirm press
# rolling effect
for _ in range(10):
clear_leds()
leds[random.randint(0,6)].value(1)
time.sleep(0.1)
number = random.randint(1,6)
show(number)
# wait until release
while button.value() == 0:
pass
time.sleep(0.2)