#Hakan Düzü <--- Code
#Lente Proost <--- Behuizing
from time import sleep_ms # krijg "sleep_ms" van "time"
from machine import Pin # krijg "Pin" van "machine"
rode_led = Pin(16,Pin.OUT) # GND.16 eerste rode led
gele_led = Pin(17,Pin.OUT) # GND.17 eerste gele led
groene_led = Pin(15,Pin.OUT) # GND.15 eerste oranje led
oranje_led = Pin(14,Pin.OUT) # GND.14 eerste groene led
rode_led2 = Pin(10,Pin.OUT) # GND.10 tweede rode led
gele_led2 = Pin(11,Pin.OUT) # GND.11 tweede rode led
groene_led2 = Pin(13,Pin.OUT) # GND.13 tweede groene led
oranje_led2 = Pin(12,Pin.OUT) # GND.12 tweede oranje led
pb_rechts = Pin(20,Pin.IN) # GND.20 rechter knop
pb_links = Pin(21,Pin.IN) # GND.21 linker knop
zoomer_links = Pin(9,Pin.IN)
zoomer_rechts = Pin(8,Pin.IN)
def ledden_aan_of_af(ro1, ge1, or1, gr1, gr2, or2, ge2, ro2): # defineer de functie "ledden_aan_of_af" en geef parameters naar elke led
if ro1: # als de errste rode led moet aan zijn:
rode_led.on() # eerste rode led aan
else: # anders:
rode_led.off() # eerste rode led af
if ge1: # als de errste gele led moet aan zijn:
gele_led.on() # eerste gele led aan
else: # anders:
gele_led.off() # eerste gele led af
if or1: # als de errste oranje led moet aan zijn:
oranje_led.on() # eerste oranje led aan
else: # anders:
oranje_led.off() # eerste oranje led af
if gr1: # als de errste groene led moet aan zijn:
groene_led.on() # eerste groene led aan
else: # anders:
groene_led.off() # eerste groene led af
if gr2: # als de tweede groene led moet aan zijn:
groene_led2.on() # tweede groene led aan
else: # anders:
groene_led2.off() # tweede groene led af
if or2: # als de tweede oranje led moet aan zijn:
oranje_led2.on() # tweede oranje led aan
else: # anders:
oranje_led2.off() # tweede oranje led af
if ge2: # als de tweede gele led moet aan zijn:
gele_led2.on() # tweede gele led aan
else: # anders:
gele_led2.off() # tweede gele led af
if ro2: # als de tweede rode led moet aan zijn:
rode_led2.on() # tweede rode led aan
else: # anders:
rode_led2.off() # tweede rode led af
while True: # oneindige lus
richting = 0 # geen richting
klaar = 0 # spel bezig
knipperen = 1 # knipper teller
wachttijd = 400 # waarde startwachttijd
starter = 0 # ga in selecteren modus
while starter == 0: # in selecteren modus:
if pb_rechts.value() == 1: # als rechter knop geduwt:
teller = 2 # start positie voor links
richting = 1 # naar rechts
starter = 1 # links start
elif pb_links.value() == 1: # als linker knop geduwt:
teller = 1024 # start positie voor rechts
richting = 2 # naar links
starter = 2 # recths start
while klaar == 0: # tot winnaar
if pb_rechts.value() == 1 and not teller == 1 and not teller == 8 and not teller == 16 and not teller == 32 and not teller == 64 and not teller == 128 and not teller == 256 and not teller == 512 and not teller == 1024: # als rechter knop geduwt, geen knipperen en op de eerste rode licht:
richting = 1 # naar rechts
elif pb_links.value() == 1 and not teller == 1 and not teller == 4 and not teller == 8 and not teller == 16 and not teller == 32 and not teller == 64 and not teller == 128 and not teller == 256 and not teller == 1024: # als linker knop geduwt, geen knipperen en op de tweede rode licht:
richting = 2 # naar links
if richting == 1: # rechts bewegen
teller *= 2 # verdubbel
elif richting == 2: # links bewegen
teller *= 0.5 # halveer
if teller == 4: # als teller 4 is:
ledden_aan_of_af(1, 0, 0, 0, 0, 0, 0, 0) # eerste rode led moet aan zijn
zoomer_links.on()
sleep_ms(wachttijd) # wacht "wachttijd" ms
zoomer_links.off()
if wachttijd > 75 and starter == 2: # als het niet te snel is en rechts heeft gestart:
wachttijd -= 25 # wachttijd verkorten
elif teller == 8: # als teller 8 is:
ledden_aan_of_af(0, 1, 0, 0, 0, 0, 0, 0) # eerste gele led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 16: # als teller 16 is:
ledden_aan_of_af(0, 0, 1, 0, 0, 0, 0, 0) # eerste oranje led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 32: # als teller 32 is:
ledden_aan_of_af(0, 0, 0, 1, 0, 0, 0, 0) # eerste groene led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 64: #als teller 64 is:
ledden_aan_of_af(0, 0, 0, 0, 1, 0, 0, 0) # tweede groene led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 128: #als teller 128 is:
ledden_aan_of_af(0, 0, 0, 0, 0, 1, 0, 0) # tweede oranje led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 256: #als teller 256 is:
ledden_aan_of_af(0, 0, 0, 0, 0, 0, 1, 0) # tweede gele led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
elif teller == 512: #als teller 512 is:
ledden_aan_of_af(0, 0, 0, 0, 0, 0, 0, 1) # tweede rode led moet aan zijn
sleep_ms(wachttijd) # wacht "wachttijd" ms
if wachttijd > 75 and starter == 1: # als het niet te snel is en links heeft gestart:
wachttijd -= 25 # wachttijd verkorten
elif teller == 1024: # als teller 1024 is:
while knipperen < 6: # knipper tot het 6 wordt
ledden_aan_of_af(1, 1, 1, 1, 1, 1, 1, 1) # alle ledden aan
sleep_ms(300) # wacht 300 ms
ledden_aan_of_af(0, 0, 0, 0, 0, 0, 0, 0) # alle ledden af
knipperen += 1 # knipperen + 1
sleep_ms(300) # wacht 300 ms
klaar = 1 # spel stop
elif teller == 1: # als teller 1 is:
while knipperen < 6: # knipper tot het 6 wordt
ledden_aan_of_af(1, 1, 1, 1, 1, 1, 1, 1) # alle ledden aan
sleep_ms(300) # wacht 300 ms
ledden_aan_of_af(0, 0, 0, 0, 0, 0, 0, 0) # alle ledden af
knipperen += 1 # knipperen + 1
sleep_ms(300) # wacht 300 ms
klaar = 1 # spel stop