import machine
import time
a = 1
# Define GPIO pins
trig = machine.Pin(1, machine.Pin.OUT)
echo = machine.Pin(0, machine.Pin.IN)
red_led = machine.Pin(28, machine.Pin.OUT)
yellow_led = machine.Pin(26, machine.Pin.OUT)
green_led = machine.Pin(21, machine.Pin.OUT)
def get_distance():
# Send ultrasonic pulse
trig.low()
time.sleep_us(2)
trig.high()
time.sleep_us(10)
trig.low()
# Measure pulse duration
pulse_start = time.ticks_us()
while echo.value() == 0:
pass
pulse_start = time.ticks_us()
while echo.value() == 1:
pass
pulse_end = time.ticks_us()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 0.034 / 2
return distance
def light_leds(distance):
if 2 < distance < 15: # Adjust based on sensor's minimum distance
red_led.value(1)
print("Very close obstacle!")
elif 10 < distance < 30:
red_led.value(1) # Red for close proximity
elif distance < 50:
yellow_led.value(1) # Yellow for caution
else:
green_led.value(1) # Green for safe distance
# Turn off unused LEDs
red_led.value(0) if distance >= 30 else red_led.value(1)
yellow_led.value(0) if distance < 10 or distance >= 50 else yellow_led.value(1)
green_led.value(0) if distance < 50 else green_led.value(1)
while (a == 1):
distance = get_distance()
# Print calculated distance for debugging (optional)
print("Distance:", distance, "cm")
light_leds(distance)
time.sleep(5)
if 2 < distance < 3:
print("The car had hit the obstacle!!\n")
break