import machine #importeer de module machine
import time #importeer de module time
# Configureer de GPIO-pinnen GP0 tot en met GP7 (module machine)
pin0 = machine.Pin(0, machine.Pin.OUT) # maak van pin GP0 een uitgang
pin1 = machine.Pin(1, machine.Pin.OUT) # maak van pin GP1 een uitgang
pin2 = machine.Pin(2, machine.Pin.OUT) # maak van pin GP2 een uitgang
pin3 = machine.Pin(3, machine.Pin.OUT) # maak van pin GP3 een uitgang
pin4 = machine.Pin(4, machine.Pin.OUT) # maak van pin GP4 een uitgang
pin5 = machine.Pin(5, machine.Pin.OUT) # maak van pin GP5 een uitgang
pin6 = machine.Pin(6, machine.Pin.OUT) # maak van pin GP6 een uitgang
pin7 = machine.Pin(7, machine.Pin.OUT) # maak van pin GP7 een uitgang
pin15 = machine.Pin(15, machine.Pin.IN) # maak van pin GP15 een ingang
pin14 = machine.Pin(14, machine.Pin.IN) # maak van pin GP14 een ingang
i = 0 # zorg dat er géén leds aangaan als het programma start
richting = 2
def stuurleds():
#Stuur de binaire waarde naar de GPIO-pinnen
pin0.value(int(binary[7])) # zet waarde LSB op pin GP0
pin1.value(int(binary[6])) # zet volgende bit op GP1
pin2.value(int(binary[5])) # zet volgende bit op GP2
pin3.value(int(binary[4])) # zet volgende bit op GP3
pin4.value(int(binary[3])) # zet volgende bit op GP4
pin5.value(int(binary[2])) # zet volgende bit op GP5
pin6.value(int(binary[1])) # zet volgende bit op GP6
pin7.value(int(binary[0])) # zet volgende bit op GP7
while True:
if i == 0:
#lees eerst de toestand in de van beide drukknoppen
drukknop1 = pin15.value()
drukknop2 = pin14.value()
if (drukknop1 == 1): # als op drukknop1 gedrukt zet
richting = 0 # zet de richting op "naar links"
i = 1
elif (drukknop2 == 1): # als op drukknop2 gedrukt is
richting = 1 # zet de richting op "naar rechts"
i = 128
while (i < 129) and (i > 0): # zolang i tussen 128 en 1 ligt
#lees eerst de toestand in de van beide drukknoppen
drukknop1 = pin15.value()
drukknop2 = pin14.value()
if (drukknop1 == 1): # als op drukknop1 gedrukt zet
richting = 0
elif (drukknop2 == 1):
richting = 1
# variabele i gebruiken om tot 255 te tellen
binary = bin(i)[2:] # Converteer naar binaire representatie zonder '0b'-voorvoegsel
binary = '0' * (8 - len(binary)) + binary # Vul aan met nullen aan de linkerkant tot 8 bits
stuurleds() # spreek functie aan om waarde op de leds te tonen
if (richting == 0) and (i < 128): # als de richting op 0 staat dan:
i = i << 1 # schuif één bit naar links op
elif (richting == 1) and (i > 1): # als de richting op 1 staat dan:
i = i >> 1 # schuif één bit naar rechts op
elif (richting == 0) and (i == 128): #laatste led aan (te laat gedrukt)
while True: #laat de leds oneindig knipperen
i = 255
binary = bin(i)[2:] # Converteer naar binaire representatie zonder '0b'-voorvoegsel
binary = '0' * (8 - len(binary)) + binary # Vul aan met nullen aan de linkerkant tot 8 bits
stuurleds() # spreek functie aan om waarde op de leds te tonen
time.sleep(0.5)
i = 0
binary = bin(i)[2:] # Converteer naar binaire representatie zonder '0b'-voorvoegsel
binary = '0' * (8 - len(binary)) + binary # Vul aan met nullen aan de linkerkant tot 8 bits
stuurleds() # spreek functie aan om waarde op de leds te tonen
time.sleep(0.5)
elif (richting == 1) and (i == 1): #eerste led aan (te laat gedrukt)
while True: #laat de leds oneindig knipperen
i = 255
binary = bin(i)[2:] # Converteer naar binaire representatie zonder '0b'-voorvoegsel
binary = '0' * (8 - len(binary)) + binary # Vul aan met nullen aan de linkerkant tot 8 bits
stuurleds() # spreek functie aan om waarde op de leds te tonen
time.sleep(0.5)
i = 0
binary = bin(i)[2:] # Converteer naar binaire representatie zonder '0b'-voorvoegsel
binary = '0' * (8 - len(binary)) + binary # Vul aan met nullen aan de linkerkant tot 8 bits
stuurleds() # spreek functie aan om waarde op de leds te tonen
time.sleep(0.5)# oneindig_knipperen() # laat de leds continu aan en uit gaan
time.sleep(0.20)