import machine
import time
# Define los pines GPIO
TRIG_PIN = 32
ECHO_PIN = 33
# Define los pines GPIO de los LEDs
LED_NEAR_PIN = 18
LED_MEDIUM_PIN = 19
LED_FAR_PIN = 21
# Configura los pines GPIO para los LEDs
led_near = machine.Pin(LED_NEAR_PIN, machine.Pin.OUT)
led_medium = machine.Pin(LED_MEDIUM_PIN, machine.Pin.OUT)
led_far = machine.Pin(LED_FAR_PIN, machine.Pin.OUT)
# Configura los pines GPIO para el sensor ultrasónico
trigger = machine.Pin(TRIG_PIN, machine.Pin.OUT)
echo = machine.Pin(ECHO_PIN, machine.Pin.IN)
def distance():
# Genera un pulso corto en el pin TRIG
trigger.value(0)
time.sleep_us(2)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
# Mide el tiempo que tarda en llegar el eco
while echo.value() == 0:
pulse_start = time.ticks_us()
while echo.value() == 1:
pulse_end = time.ticks_us()
pulse_duration = pulse_end - pulse_start
# Calcula la distancia en base al tiempo transcurrido
distance_cm = pulse_duration / 58 # La velocidad del sonido es aproximadamente 343 m/s
distance_inches = distance_cm / 2.54 # Conversión a pulgadas
return distance_cm, distance_inches
try:
while True:
# Obtiene la distancia
dist_cm, dist_inches = distance()
# Enciende los LEDs según la distancia
if dist_cm < 80:
led_near.on()
led_medium.off()
led_far.off()
elif dist_cm < 100:
led_near.off()
led_medium.on()
led_far.off()
else:
led_near.off()
led_medium.off()
led_far.on()
# Imprime la distancia
print("Distancia en CM:", dist_cm)
print("Distancia en pulgadas:", dist_inches)
# Espera un segundo antes de tomar otra medida
time.sleep(1)
except KeyboardInterrupt:
# Apaga los LEDs antes de salir
led_near.off()
led_medium.off()
led_far.off()