from machine import Pin
import time
# Pins instellen
l0 = Pin(0, Pin.OUT)
l1 = Pin(1, Pin.OUT)
l2 = Pin(2, Pin.OUT)
l3 = Pin(3, Pin.OUT)
l4 = Pin(4, Pin.OUT)
l5 = Pin(5, Pin.OUT)
l6 = Pin(6, Pin.OUT)
l7 = Pin(7, Pin.OUT)
# Knoppen
k_links = Pin(14, Pin.IN)
k_rechts = Pin(15, Pin.IN)
# Beginstand
richting = 0
positie = -1
while True:
# 1. WACHTEN OP START
if richting == 0:
if k_links.value() == 1:
positie = 0
richting = 1
time.sleep(0.3)
elif k_rechts.value() == 1:
positie = 7
richting = 2
time.sleep(0.3)
# 2. HET LOOPLICHTJE
if richting != 0:
# Alles uit
l0.value(0); l1.value(0); l2.value(0); l3.value(0)
l4.value(0); l5.value(0); l6.value(0); l7.value(0)
# Huidige aan
if positie == 0: l0.value(1)
if positie == 1: l1.value(1)
if positie == 2: l2.value(1)
if positie == 3: l3.value(1)
if positie == 4: l4.value(1)
if positie == 5: l5.value(1)
if positie == 6: l6.value(1)
if positie == 7: l7.value(1)
time.sleep(0.4)
# Check terugslag op de uiterste LED
if positie == 7 and richting == 1 and k_rechts.value() == 1:
richting = 2
elif positie == 0 and richting == 2 and k_links.value() == 1:
richting = 1
# Bewegen
if richting == 1:
positie = positie + 1
else:
positie = positie - 1
# Game over check
if positie > 7 or positie < 0:
# 5 seconden knipperen
teller = 0
while teller < 10:
l0.value(1); l1.value(1); l2.value(1); l3.value(1)
l4.value(1); l5.value(1); l6.value(1); l7.value(1)
time.sleep(0.25)
l0.value(0); l1.value(0); l2.value(0); l3.value(0)
l4.value(0); l5.value(0); l6.value(0); l7.value(0)
time.sleep(0.25)
teller = teller + 1
# Reset
richting = 0
positie = -1