from machine import Pin, PWM, time_pulse_us
from time import sleep, sleep_us
TRIG_PIN = 5
ECHO_PIN = 4
SERVO_PIN = 18
trig = Pin(TRIG_PIN, Pin.OUT)
echo = Pin(ECHO_PIN, Pin.IN)
servo = PWM(Pin(SERVO_PIN), freq=50)
#------------------------------------------------------------------
def set_servo_angle(angle):
min_duty = 26
max_duty = 123
duty = int(min_duty + (angle / 180) * (max_duty - min_duty))
servo.duty(duty)
#------------------------------------------------------------------
def get_distance_cm():
# Trig ultrasonic Pin
trig.value(0)
sleep_us(2)
trig.value(1)
sleep_us(10)
trig.value(0)
duration = time_pulse_us(echo, 1, 30000)
if duration < 0:
return 999
return (duration * 0.0343) / 2
#------------------------------------------------------------------
set_servo_angle(0)
print("Smart Parking Gate Started")
while True:
# make your code here
distance = get_distance_cm()
print(f"Distance = {distance} cm")
if distance <= 15:
set_servo_angle(0)
print("Gate: Open")
else:
set_servo_angle(90)
print("Gate: Closed")
sleep(0.2)