from picozero import Speaker
from machine import Pin
from utime import sleep, ticks_us, ticks_diff
# Configurações de pinos
trig = Pin(2, Pin.OUT) # Pino de disparo do sensor
echo = Pin(3, Pin.IN) # Pino de recepção do sensor
#Declaração CORRETA - SEM PRECISAR de biblioteca BUZZER
#buzzer = Pin(16, Pin.OUT)
#Específico WOKWI
buzzer = Speaker(16)
while True:
# Garante que o TRIG está em nível baixo
trig.low()
sleep(0.002) # Aguarda 2ms para estabilizar
# Envia um pulso de 10us
trig.high()
sleep(0.00001)
trig.low()
# Espera o início do pulso no ECHO
while echo.value() == 0:
start = ticks_us()
# Espera o fim do pulso no ECHO
while echo.value() == 1:
end = ticks_us()
# Calcula a duração do pulso
# duracao → é o tempo (em microssegundos) que o pulso ultrassônico demorou para ir até o objeto e voltar.
duracao = ticks_diff(end, start)
# Calcula a distância em centímetros
#0.0343 → é a velocidade do som em centímetros por microssegundo.
distancia = (duracao * 0.0343) / 2
if distancia < 200:
buzzer.on()
else:
buzzer.off()
print(f"Distância: {distancia:.2f} cm")
sleep(1) # Aguarda 1 segundo antes da próxima leitura