# Import required modules
from machine import Pin, Timer
import utime
# Set constants for better readability
ULTRASONIC_TRIGGER = 15
ULTRASONIC_ECHO = 14
def _measure_distance():
# Trigger the ultrasound sensor
trigger_pin.low()
utime.sleep_us(2)
trigger_pin.high()
utime.sleep_us(5)
trigger_pin.low()
# Wait until echo pin goes HIGH
while not echo_pin.value():
pass
start_time = utime.ticks_us()
# Wait until echo pin goes LOW again
while echo_pin.value():
pass
end_time = utime.ticks_us()
# Calculate time passed between sending trigger and receiving echo
time_elapsed = end_time - start_time
# Convert time elapsed into distance
velocity = 0.0343 # m/s (speed of sound in air at room temperature)
distance = time_elapsed * velocity / 2
return distance
try:
# Initialize GPIO pins
trigger_pin = Pin(ULTRASONIC_TRIGGER, Pin.OUT)
echo_pin = Pin(ULTRASONIC_ECHO, Pin.IN)
while True:
print('Measuring...')
# Measure distance
distance = _measure_distance()
print(f'Distance: {round(distance, 2)} cm')
# Pause for 1 second
utime.sleep(1)
except KeyboardInterrupt:
print('\nExiting program...')
finally:
del trigger_pin
del echo_pin