from machine import Pin
from time import sleep, ticks_ms # ticks_ms für Zeitmessung mittels Programmlaufzeit
from random import randint
reaktionsZeit=0
led = Pin(2, Pin.OUT)
taster = Pin(4, Pin.IN, Pin.PULL_DOWN)
def t(): # Funktion zum Warten auf Tasterdruck:
z=taster.value() # Taster-Pin einlesen
while z==1: # Solange z 0 ist, also der Taster nicht gedrückt wird ...
z=taster.value() # ... wird der Pin eingelesen und in z gespeichert.
print("Taster nicht gedrueckt halten!")
sleep(0.2)
while z==0: # Solange Taster nicht gedrückt ...
sleep(0.001) # eine Millisekunde warten
z=taster.value() # und Pin erneut eingelesen
n=1 # Variable zum Zählen der Messungen
x=3 # Anzahl an Messungen
print("Sobald LED an: Taster druecken!")
print("Zum (Neu-)Start den Taster druecken!")
while n<=x:
led.off()
# Zufällig lange warten, dann LED an:
warteZeit=randint(2,5) # Erzeugt eine zufällige Zahl zwischen 2 und 5
while warteZeit>0:
led.off()
sleep(0.1)
# Falls Taster jetzt schon gedrückt (gehalten oder hektisch geklickt) wird:
z=taster.value()
if z==1:
print("Nicht mogeln!")
'''
sleep(0.5) # kurze Zeit warten zum Ausführen des print-Befehls
z=taster.value()
while z==1:
z=taster.value()
sleep(0.1)
'''
warteZeit=warteZeit-0.1
#print(warteZeit)
led.on()
# Warten auf Tasterdruck:
startzeit = ticks_ms() # Speichert die Programmlaufzeit in Millisekunden in der Variablen.
t()
endzeit = ticks_ms()
reaktionsZeit = endzeit - startzeit # zeitspanne = ticks_diff(endzeit,startzeit)
led.off()
print("Reaktonszeit", n, ":", reaktionsZeit, "ms")
n=n+1
'''
# Ohne Funktion zur Tasterabfrage:
from machine import Pin
from time import sleep
from random import randint
taster = Pin(4, Pin.IN, Pin.PULL_DOWN)
led = Pin(2, Pin.OUT)
print("Sobald LED an: Taster druecken!")
print("Zum (Neu-)Start den Taster druecken!")
n=1 # Variable zum Zählen der Messungen
while True:
# Alternativ für 10 Messungen: while n<=10:
# Warten auf Drücken des Tasters:
z=taster.value() # liest den Taster-Pin ein und speichert seinen Wert in z
while z==0: # Solange z 0 ist, also der Taster nicht gedrückt wird ...
z=taster.value() # ... wird der Pin eingelesen und in z gespeichert.
sleep(0.2)
# Warten auf Loslassen Tasters:
z=taster.value() # liest den Taster-Pin ein und speichert seinen Wert in z
while z==1: # Solange z 0 ist, also der Taster nicht gedrückt wird ...
z=taster.value() # ... wird der Pin eingelesen und in z gespeichert.
print("Taster nicht gedrueckt halten!")
sleep(0.2)
led.off()
warteZeit=randint(2,5) # Erzeugt eine zufällige Zahl zwischen 2 und 5
sleep(warteZeit)
led.on()
reaktionsZeit=0
# Warten auf Loslassen Tasters:
z=taster.value() # liest den Taster-Pin ein und speichert seinen Wert in z
while z==1: # Solange z 0 ist, also der Taster nicht gedrückt wird ...
z=taster.value() # ... wird der Pin eingelesen und in z gespeichert.
print("Taster nicht gedrueckt halten!")
sleep(0.2)
# Warten auf Tasterdruck:
z=taster.value() # liest den Taster-Pin ein und speichert seinen Wert in z
while z==0: # Solange z 0 ist, also der Taster nicht gedrückt wird ...
z=taster.value() # ... wird der Pin eingelesen und in z gespeichert.
sleep(0.001) # wartet eine Millisekunde
reaktionsZeit=reaktionsZeit+1 # Zählt die Reaktionszeit um 1 (ms) hoch.
led.off()
print("Reaktonszeit", n, ":", reaktionsZeit, "ms")
n=n+1
sleep(0.5)
'''