from machine import Pin
from neopixel import NeoPixel
import time
# --- SETUP ---
# LED Strip configuratie
LED_PIN = 32 # De pin waar de Data-in van de strip aan hangt
NUM_LEDS = 8 # Aantal LEDs op de strip
np = NeoPixel(Pin(LED_PIN, Pin.OUT), NUM_LEDS)
# Knop configuratie (voor Oefening 8)
# We gebruiken hier Pin 25 als voorbeeld voor de schakelaar
# We gebruiken PULL_UP: knop niet ingedrukt = 1 (High), ingedrukt = 0 (Low)
button = Pin(25, Pin.IN, Pin.PULL_UP)
# --- HULPFUNCTIES ---
def clear_leds():
"""Zet alle LEDs uit"""
for i in range(NUM_LEDS):
np[i] = (0, 0, 0)
np.write()
# --- OEFENINGEN ---
print("Oefening 8: Schakelaar bepaalt richting (Geoptimaliseerd)")
clear_leds()
huidige_pos = 0
while True:
# 1. Zet de LED op de huidige positie AAN
np[huidige_pos] = (255, 0, 0)
# 2. Schrijf naar de strip
# (Hierdoor wordt de wijziging van de VORIGE loop (het uitzetten) ook verwerkt)
np.write()
# 3. Wacht
time.sleep_ms(500)
# 4. Zet de LED op de huidige positie UIT in het geheugen
# We doen dit VOORDAT we de positie veranderen.
np[huidige_pos] = (0, 0, 0)
# 5. Lees schakelaar en bepaal NIEUWE positie
if button.value() == 1:
# Vooruit
huidige_pos += 1
if huidige_pos >= NUM_LEDS:
huidige_pos = 0
else:
# Achteruit
huidige_pos -= 1
if huidige_pos < 0:
huidige_pos = NUM_LEDS - 1