from machine import Pin, PWM
import utime
pulse=Pin(4, Pin.OUT)#trigger
receiver =Pin(5, Pin.IN, Pin.PULL_DOWN)#echo
speaker = PWM(Pin(10))#buzzer
def CheckDistance():
SpeedofSoundInMM = 0.344
pulse.low()
utime.sleep_us(20)
pulse.high()
utime.sleep_us(10)
pulse.low()
exitloop =False
loopcount =0
while receiver.value() == 0 and exitloop == False:
loopcount = loopcount + 1
delaytime = utime.ticks_us()
if loopcount > 3000 : exitloop ==True
while receiver.value() == 1 and exitloop == False:
loopcount = loopcount + 1
receivetime = utime.ticks_us()
if loopcount > 3000 : exitloop ==True
if exitloop == True:
return 0
else:
distance = ((receivetime - delaytime) * SpeedofSoundInMM)/2
return distance
while True:
distance = CheckDistance()
print(distance)
if CheckDistance() < 2500:
speaker.duty_u16(3000)
speaker.freq(1700)
utime.sleep(0.05)
speaker.duty_u16(0)
utime.sleep(CheckDistance() / 1000)
speaker.duty_u16(0)