from machine import Pin
from time import sleep
increment = Pin(18, Pin.IN, Pin.PULL_UP)
decrement = Pin(19, Pin.IN, Pin.PULL_UP)
green = Pin(25, Pin.OUT)
red = Pin(26, Pin.OUT)
yellow = Pin(27, Pin.OUT)
blue = Pin(14, Pin.OUT)
MAX_CARS = 15
cars = 0
def update_state():
if cars < MAX_CARS:
green.value(1)
red.value(0)
else:
green.value(0)
red.value(1)
green.value(1)
red.value(0)
yellow.value(0)
blue.value(0)
update_state()
while True:
if increment.value() == 0:
if cars < MAX_CARS:
cars += 1
print("Car entered")
print("Cars inside:", cars)
yellow.value(1)
sleep(0.7)
yellow.value(0)
update_state()
while increment.value() == 0:
sleep(0.05)
if decrement.value() == 0:
if cars > 0:
cars -= 1
print("Car exited")
print("Cars inside:", cars)
blue.value(1)
sleep(0.7)
blue.value(0)
update_state()
while decrement.value() == 0:
sleep(0.05)
sleep(0.05)