from machine import Pin
import time
time.sleep(1) # wacht voor USB
button = Pin(0, Pin.IN, Pin.PULL_UP) #hierdoor is de pin 1 wnr de dk niet ingedrukt is, en 0 wnr de DK ingedrukt is
ledr = Pin(6,Pin.OUT) #output die de led aanstuurt led.value(1) zegt LED aan
ledo = Pin(7, Pin.OUT)
ledg = Pin(8, Pin.OUT)
previous = 1 #variabele aanmaken, deze staat voor de vorige status van de knop aan te geven
#Je wilt de vorige waarde bijhouden vd DK want je bent alleen in een stijgende flank want dan weet je wanneer de LED aan gaat of die weer uit zal gaan
status = 0 #variabele voor de status van LED aan te geven, je gebruikt het om aan te geven of de LED op dit moment aan of uit staat
while True:
press = button.value() # drukken = led aan en blijft aan, nog een keer drukken = led uit en blijft uit
#press geeft dus eigenlijk de waarde aan van de DI, als press = 1 dan is DK niet ingedrukt, als press = 0 dan DI laag en dus DK ingedrukt
if press == 0 and previous == 1: #betekent dus als de knop ingedrukt is en de vorige waarde vd DK was niet ingedrukt, dan is er nu een negatieve flank gedetecteerd van 1 --> 0 je toggelt/aansturen de LED dus adhv een negatieve flank
status = status + 1 #dan wordt status met 1 verhoogd
if status % 3 == 0: #als status deelbaar is door 3 dan en gelijk aan 0
status = 0 #dan wordt status omgezet naar 0
print(status)
if status == 0: # groen
ledg.value(0)
ledo.value(1)
ledr.value(1)
elif status == 1: # oranje
ledg.value(1)
ledo.value(0)
ledr.value(1)
elif status == 2: # rood
ledg.value(1)
ledo.value(1)
ledr.value(0)
previous = press #je gaat de vorige waarde opslaan (was press) voor de volgende cyclus (en wordt dus in previous gestoken), dus de waarde van press wordt opgeslagen in previous en dan begint de lus opnieuw
time.sleep(1)