import machine
import time
# LEDS configureren
led0 = machine.Pin(0, machine.Pin.OUT)
led1 = machine.Pin(1, machine.Pin.OUT)
led2 = machine.Pin(2, machine.Pin.OUT)
led3 = machine.Pin(3, machine.Pin.OUT)
led4 = machine.Pin(4, machine.Pin.OUT)
led5 = machine.Pin(5, machine.Pin.OUT)
led6 = machine.Pin(6, machine.Pin.OUT)
led7 = machine.Pin(7, machine.Pin.OUT)
# Knoppen configureren
knop_links = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
knop_rechts = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_DOWN)
while True:
# Reset alles
led0.value(0); led1.value(0); led2.value(0); led3.value(0)
led4.value(0); led5.value(0); led6.value(0); led7.value(0)
positie = -1
richting = 0
# --- STAP 1: WACHTEN OP START ---
# We blijven in deze kleine loop tot er echt gedrukt wordt
terwijl_wachten = True
while terwijl_wachten:
if knop_links.value() == 1:
positie = 0
richting = 1
terwijl_wachten = False
elif knop_rechts.value() == 1:
positie = 7
richting = 2
terwijl_wachten = False
time.sleep(0.01) # Kleine pauze om de simulator niet te overbelasten
# --- STAP 2: HET SPEL ---
game_over = False
tick_teller = 0
while not game_over:
# Update de LEDs
led0.value(1 if positie == 0 else 0)
led1.value(1 if positie == 1 else 0)
led2.value(1 if positie == 2 else 0)
led3.value(1 if positie == 3 else 0)
led4.value(1 if positie == 4 else 0)
led5.value(1 if positie == 5 else 0)
led6.value(1 if positie == 6 else 0)
led7.value(1 if positie == 7 else 0)
# CHECK DE KNOPPEN (Continu!)
if positie == 7 and richting == 1 and knop_rechts.value() == 1:
richting = 2
if positie == 0 and richting == 2 and knop_links.value() == 1:
richting = 1
# De LED mag niet elke milliseconde bewegen, dat is te snel.
# We verplaatsen de LED pas als de teller op 20 staat (20 * 0.005s = 0.1s)
time.sleep(0.005)
tick_teller = tick_teller + 1
if tick_teller >= 20:
if richting == 1:
positie = positie + 1
elif richting == 2:
positie = positie - 1
tick_teller = 0 # Reset de teller voor de volgende stap
# Check of het lichtje uit de baan is
if positie > 7 or positie < 0:
game_over = True
# --- STAP 3: GAME OVER (Knipperen) ---
for i in range(10):
aan_uit = (i % 2 == 0) # Om en om True/False
led0.value(aan_uit); led1.value(aan_uit); led2.value(aan_uit); led3.value(aan_uit)
led4.value(aan_uit); led5.value(aan_uit); led6.value(aan_uit); led7.value(aan_uit)
time.sleep(0.5)