from machine import Pin,PWM
import time
def ultra():
trigger.low()
time.sleep_us(2)
trigger.high()
time.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = time.ticks_us()
while echo.value() == 1:
signalon = time.ticks_us()
timepassed = signalon - signaloff
distance = (timepassed * 0.0343) / 2
# print("The distance from object is ", distance, "cm")
return distance
green=Pin(1, Pin.OUT)
green.value(0)
motor = PWM(Pin(27))
motor.freq(50)
close_pos = 500000
open_pos = 1450000
motor.duty_ns(close_pos)
trigger = Pin(20, Pin.OUT)
echo = Pin(19, Pin.IN)
# while True:
# distance = ultra()
# if distance < 200 :
# motor.duty_ns(open_pos)
# green.on()
# print('Door Open!')
# if distance >= 200 :
# motor.duty_ns(close_pos)
# green.off()
# print('Door Closed!')
# time.sleep(2)
state = 'closed'
while True:
distance = ultra()
# print(distance)
if distance < 200 and state=='closed': # 현상태 유지 시 액션 생략!
motor.duty_ns(open_pos)
green.on()
state = 'open'
print('Door Open!')
if distance >= 200 and state=='open':
motor.duty_ns(close_pos)
green.off()
state='closed'
print('Door Closed!')
print(distance)
time.sleep(2)