import machine
import utime

# Define the GPIO pins for the sensor
TRIGGER_PIN = 3  # GPIO pin for triggering the sensor
ECHO_PIN = 2     # GPIO pin for receiving echo pulses

# Initialize the pins
trigger = machine.Pin(TRIGGER_PIN, machine.Pin.OUT)
echo = machine.Pin(ECHO_PIN, machine.Pin.IN)

def measure_distance():
    """Measures the distance using the ultrasonic sensor."""

    # Send a 10-microsecond pulse to the trigger pin
    trigger.low()
    utime.sleep_us(2)
    trigger.high()
    utime.sleep_us(10)
    trigger.low()

    # Measure the duration of the echo pulse
    while echo.value() == 0:
        signaloff = utime.ticks_us()  # Start time of echo pulse
    while echo.value() == 1:
        signalon = utime.ticks_us()   # End time of echo pulse

    # Calculate the distance in centimeters using the speed of sound
    pulse_duration = signalon - signaloff
    distance = pulse_duration * 0.0343 / 2

    return distance

while True:
    # Measure the distance and print the result
    distance = measure_distance()
    print("Distance: {:.2f} cm".format(distance))

    # Wait for 1 second before taking the next measurement
    utime.sleep(1)