############################
# E047_ULTRSON.PY: Mide distancias con ultrasonidos HC-SR04©
# ENTRADAS: Velocidad del sonido en el aire
# SALIDAS: Distancia en centímetros
############################
from machine import Pin # Gestión GPIO
import time # Control tiempos
# Configuración de pines como salida (trigger) y entrada (echo)
echo = Pin(32, Pin.IN) # Pulso de llegada
trig = Pin(33, Pin.OUT) # Pulso de salida
# Velocidad sonido en aire en m/s
velocidad = 344.6 # Depende de la temperatura, humedad y presión
# Mide la distancia con el sensor HC-SR04©
def medir_distancia():
trig.value(0) # Inicia el HC-SR04©
time.sleep(.2) # NO bajar de .2 segundos
trig.value(1) # El HC-SR04© genera 8 pulsos de 40kHz
time.sleep_us(10)
trig.value(0)
while echo.value() == 0: # Espera a que echo = 1
pass
pulso_inicio=time.ticks_us() # Inicia contador de tiempo
while echo.value() == 1: # Espera a echo = 0
pass
pulso_fin=time.ticks_us() # Fin del contador de tiempo
# Calcula el retardo en microsegundos
retardo = time.ticks_diff(pulso_fin, pulso_inicio)
# Calcula la distancia en centímetros (ojo ida y vuelta del sonido)
distancia_centimetros = retardo * velocidad / 2 / 10000 # Divide 1e6/100=1e4 para cm
print (retardo)
print("Distancia: {} centimetros".format(distancia_centimetros))
# Bucle principal
print('MEDIDOR DE DISTANCIAS CON HC-SR04©')
print('Apunta el sensor al objeto a medir...')
try:
while True:
medir_distancia()
time.sleep(2)
except KeyboardInterrupt:
print('Terminado...')