from machine import Pin
import utime
trigger = Pin(27, Pin.OUT)
echo = Pin(26, Pin.IN)
MAX_DISTANCE_CM = 400 # Set your maximum measurable distance
def ultra():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = utime.ticks_us()
while echo.value() == 1:
signalon = utime.ticks_us()
timepassed = signalon - signaloff
distance = (timepassed * 0.0343) / 2
percentage = min(100, max(0, (distance / MAX_DISTANCE_CM) * 100)) # Clamp between 0–100%
print("Distance: {:.2f} cm | Percentage: {:.2f}%".format(distance, percentage))
while True:
ultra()
utime.sleep(1)