from machine import Pin
import utime
# Define pin numbers for lights and buttons
blaljus_lampor = [2, 3, 4, 5, 6, 7, 13, 14]
rod_lampa = 10
bla_lampa = 11
helljus = 12
baksida_bla = [13, 14]
blaljus_knapp = 15
stop_knapp = 16
reset_knapp = 18
# Setup pins
lampor = [Pin(pin, Pin.OUT) for pin in blaljus_lampor + baksida_bla + [rod_lampa, bla_lampa, helljus]]
knappar = [Pin(blaljus_knapp, Pin.IN, Pin.PULL_UP), Pin(stop_knapp, Pin.IN, Pin.PULL_UP), Pin(reset_knapp, Pin.IN, Pin.PULL_UP)]
blaljus_tillstand = False
stop_tillstand = False
start_tid_stop = 0
def stang_av_alla_lampor():
for pin in lampor:
pin.low()
def blink_helljus(count, delay_ms):
for _ in range(count):
lampor[10].high() # helljus
utime.sleep_ms(delay_ms)
lampor[10].low()
utime.sleep_ms(delay_ms)
def loop():
global blaljus_tillstand, stop_tillstand, start_tid_stop
# Check if the reset button is pressed
if knappar[2].value() == 0:
blaljus_tillstand = False
stop_tillstand = False
start_tid_stop = 0
stang_av_alla_lampor()
utime.sleep_ms(500)
# Handle blue light button
if knappar[0].value() == 0:
blaljus_tillstand = not blaljus_tillstand
for pin in lampor[:8]: # First 8 pins are for blue lights
pin.value(blaljus_tillstand)
utime.sleep_ms(500)
# Handle stop button
if knappar[1].value() == 0:
stop_tillstand = not stop_tillstand
if stop_tillstand:
start_tid_stop = utime.ticks_ms()
blink_helljus(5, 100) # Blink helljus 5 times quickly
for pin in lampor[8:10]: # Turn on baksida_bla
pin.high()
else:
stang_av_alla_lampor()
utime.sleep_ms(500)
# Check and handle stop condition
if stop_tillstand:
nu = utime.ticks_ms()
lampor[8].toggle() # rod_lampa
lampor[9].toggle() # bla_lampa
utime.sleep_ms(500)
# Main execution loop
while True:
loop()