Code: Select all
from microbit import *
from time import sleep_us
from machine import time_pulse_us
from math import sqrt
class Hcsr04():
def __init__(self, pin_trig, pin_echo):
self.pin_trig = pin_trig
self.pin_echo = pin_echo
# 设置速度温度补偿
def speed(self):
t = temperature()
sp = 331*sqrt(1+t/273)
return sp
# 距离返回单位为毫米
def distance(self):
self.pin_echo.read_digital()
self.pin_trig.write_digital(1)
sleep_us(10)
self.pin_trig.write_digital(0)
ts = time_pulse_us(self.pin_echo, 1, 30000)
v = self.speed()
if ts > 0:
return ts * v // 2000
return ts
if __name__== "__main__":
while True:
hcsr = Hcsr04(pin15, pin16)
print(hcsr.distance())
sleep(500)