import machine, time
from machine import Pin
def HCSR04(trigger_pin, echo_pin):
trigger = Pin(trigger_pin, mode=Pin.OUT, pull=None)
trigger.value(0)
echo = Pin(echo_pin, mode=Pin.IN, pull=None)
return trigger,echo
def _send_pulse_and_wait(trigger,echo):
trigger.value(0)
time.sleep_us(5)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
echo_timeout_us=500*2*30
pulse_time = machine.time_pulse_us(echo, 1,echo_timeout_us)
return pulse_time
def distance_cm(trigger,echo):
pulse_time = _send_pulse_and_wait(trigger,echo)
cms = (pulse_time / 2) / 29.1
return cms
trigger,echo = HCSR04(trigger_pin=5, echo_pin=21)
while True:
distance = distance_cm(trigger,echo)
print('Distance:', distance, 'cm')
time.sleep(1)