from machine import Pin, PWM
import time
led = Pin(2, Pin.OUT)
button = Pin(15, Pin.IN, Pin.PULL_UP)
servo = PWM(Pin(18), freq=50)
def set_angle(angle):
duty = int((angle / 180) * 102 + 26)
servo.duty(duty)
last_led = time.ticks_ms()
last_print = time.ticks_ms()
gate_open_time = 0
gate_open = False
set_angle(0)
while True:
now = time.ticks_ms()
if time.ticks_diff(now, last_led) >= 1000:
led.toggle()
last_led = now
if button.value() == 0 and not gate_open:
set_angle(90)
gate_open = True
gate_open_time = now
if gate_open:
if time.ticks_diff(now, gate_open_time) >= 3000:
set_angle(0)
gate_open = False
if time.ticks_diff(now, last_print) >= 5000:
print("Gate Open:", gate_open)
last_print = now