from machine import Pin
import time
btn_inc = Pin(12, Pin.IN, Pin.PULL_UP)
btn_dec = Pin(14, Pin.IN, Pin.PULL_UP)
led_green = Pin(18, Pin.OUT)
led_red = Pin(19, Pin.OUT)
led_yellow = Pin(2, Pin.OUT)
led_blue = Pin(4, Pin.OUT)
car_count = 0
MAX_CAPACITY = 15
last_inc_state = 1
last_dec_state = 1
def update_state_leds(count):
if count < MAX_CAPACITY:
led_green.value(1)
led_red.value(0)
else:
led_green.value(0)
led_red.value(1)
def trigger_event_led(led):
led.value(1)
time.sleep(0.3)
led.value(0)
update_state_leds(car_count)
print(f"System Ready. Current Car Count: {car_count}/{MAX_CAPACITY}")
while True:
current_inc_state = btn_inc.value()
current_dec_state = btn_dec.value()
if last_inc_state == 1 and current_inc_state == 0:
if car_count < MAX_CAPACITY:
car_count += 1
print(f"Accepted Entry! Current Count: {car_count}")
update_state_leds(car_count)
trigger_event_led(led_yellow)
else:
print("Entry Denied! Garage is Full (15). Event ignored.")
time.sleep(0.05) # مانع التذبذب (Debounce)
if last_dec_state == 1 and current_dec_state == 0:
if car_count > 0:
car_count -= 1
print(f"Accepted Exit! Current Count: {car_count}")
update_state_leds(car_count)
trigger_event_led(led_blue)
print("Exit Denied! Garage is Empty (0). Event ignored.")
time.sleep(0.05)
last_inc_state = current_inc_state
last_dec_state = current_dec_state
time.sleep(0.01)