from machine import Pin, ADC
from time import sleep, time
# Definieer LEDs en knop
leds = [Pin(9, Pin.OUT), Pin(8, Pin.OUT), Pin(7, Pin.OUT), Pin(6, Pin.OUT), # Rechterkant LEDs (index 0-3)
Pin(5, Pin.OUT), Pin(4, Pin.OUT), Pin(3, Pin.OUT), Pin(2, Pin.OUT)] # Linkerkant LEDs (index 4-7)
button_links = Pin(22, mode=Pin.IN, pull=Pin.PULL_UP) # Linkerknop (Button 1)
button_rechts = Pin(10, mode=Pin.IN, pull=Pin.PULL_UP) # Rechterknop (Button 2)
potentiometer = ADC(28) # Potentiometer input
def main():
led = Pin(2, Pin.OUT) # LED 1 op pin 2
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
def clear_leds():
for led in leds:
led.off()
def flash_bij_winnen(winner_leds, times=5, interval=0.4):
for _ in range(times):
for led in winner_leds:
led.on()
sleep(interval)
for led in winner_leds:
led.off()
sleep(interval)
def alle_leds_aan(duration=20):
for led in leds:
led.on()
sleep(duration)
clear_leds()
def game():
led_index = 0
direction = 1 # Beweegt van links naar rechts
start_time = time()
while time() - start_time < 40: # 40 seconden timer
delay = potentiometer.read_u16() / 65535 * 0.5 # De snelheid van LED's door de potentiometer
clear_leds()
leds[led_index].on()
if leds[led_index].value() == 1 and button_rechts.value() == 0 and led_index == 0:
flash_bij_winnen(leds[:4]) # Knipper van rechter LEDs bij winst van de rechterspeler
return
if leds[led_index].value() == 1 and button_links.value() == 0 and led_index == 7:
flash_bij_winnen(leds[4:]) # Knipper van linker LEDs bij winst van de linker speler
return
led_index += direction
# Richting omkeren bij het bereiken van de uiteinden
if led_index == 7 or led_index == 0:
direction *= -1
sleep(delay)
alle_leds_aan() # lle LED's aan voor 20 seconden
while True:
# Wacht tot beide knoppen zijn ingedrukt om het spel te starten
if button_links.value() == 0 and button_rechts.value() == 0:
# LEDS 6, 5 en 4 gaan aan en uit als het spel begint
leds[4].on()
sleep(0.5)
leds[4].off()
leds[5].on()
sleep(0.5)
leds[5].off()
leds[6].on()
sleep(0.5)
leds[6].off()
game() # Start van het spel
'''
Instructie
Dit is een snelheidstest.
Na het indrukken van knop 1 en knop 2 start het spel.
LED's 3, 2 en 1 zullen oplichten wanneer het spel begint, zodat beide spelers zich kunnen voorbereiden.
De LED's gaan van links naar rechts en van rechts naar links aan.
De snelheid hiervan is aanpasbaar met de potentiometer, zodat de spelers zelf het niveau kunnen bepalen.
De speler aan de linkerkant moet op de knop drukken wanneer LED 8 aan is om te kunnen winnen.
De speler aan de rechterkant moet op de knop drukken wanneer LED 1 aan is om te kunnen winnen.
De vier LED's aan de kant van de winnaar zullen gedurende 8 seconden knipperen.
De speeltijd is 40 seconden. Als niemand binnen deze tijd wint, zullen alle LED's gedurende 20
seconden aan gaan en is het spel beëindigd.
'''