from machine import Pin
import time
# Definer GPIO-nummer
button_pins = [15, 14, 13, 12] # GPIO for knapper
relay_pins = [16, 17, 18, 19] # GPIO for reléer
led_pins = [20, 21, 22, 26] # GPIO for LED-er
# Sett opp pinner
buttons = [Pin(pin, Pin.IN, Pin.PULL_UP) for pin in button_pins]
relays = [Pin(pin, Pin.OUT) for pin in relay_pins]
leds = [Pin(pin, Pin.OUT) for pin in led_pins]
# Initialiser tilstand: relé og LED av
relay_states = [False] * 4
for relay, led in zip(relays, leds):
relay.value(0) # aktiv-lav: HIGH = av
led.value(0) # LED av
# For debouncing
last_button_states = [1] * 4
def toggle_channel(i):
relay_states[i] = not relay_states[i]
relays[i].value(relay_states[i]) # aktiv-lav: 0 = PÅ
leds[i].value(relay_states[i]) # LED følger logikk
# Hovedsløyfe
while True:
for i in range(4):
current_state = buttons[i].value()
if last_button_states[i] == 1 and current_state == 0:
toggle_channel(i)
time.sleep(0.2) # debounce delay
last_button_states[i] = current_state
time.sleep(0.01)