import time
import board
import digitalio
import pulseio
# Set up pins
TRIG = digitalio.DigitalInOut(board.GP4)
TRIG.direction = digitalio.Direction.OUTPUT
LED = digitalio.DigitalInOut(board.GP13)
LED.direction = digitalio.Direction.OUTPUT
# Threshold
DISTANCE_THRESHOLD = 100 # Distance in cm
# Function to control LED based on distance
def led_alert(LED, distance):
if distance <= DISTANCE_THRESHOLD:
LED.value = True # Turn LED on
else:
LED.value = False # Turn LED off
# Function to send pulse and measure response
def send():
TRIG.value = False
time.sleep(0.000002)
TRIG.value = True
time.sleep(0.00001)
TRIG.value = False
# Measure pulse duration with PulseIn, using board.GP5 directly
pulse = pulseio.PulseIn(board.GP5, maxlen=1, idle_state=False)
while len(pulse) == 0:
pass
pulse_width = pulse[0]
pulse.deinit() # Deinitialize to free up resources
return pulse_width
# Main loop
while True:
pulse_width = send()
distance = pulse_width * 0.034 / 2 # Calculate distance in cm
led_alert(LED, distance)
print("Distance:", distance, "cm")
time.sleep(1)