from machine import Pin, PWM
from hcsr04 import HCSR04
import time
# Setup sensore e buzzer
sensore = HCSR04(trigger_pin=4, echo_pin=5)
buzzer = PWM(Pin(9)) # Buzzer sul pin 2
# Frequenze per i toni (in Hz)
FREQ_MIN = 500 # Tono più basso (200cm)
FREQ_MAX = 2000 # Tono più acuto (5cm)
DIST_MAX = 200 # Distanza massima per attivare il buzzer
while True:
distanza = sensore.measure_distance_cm()
if distanza is not None:
if distanza < DIST_MAX:
# Limita la distanza minima a 5cm
if distanza < 5:
distanza = 5
# Calcola la frequenza in base alla distanza
# Più vicino = frequenza più alta
frequenza = FREQ_MIN + (FREQ_MAX - FREQ_MIN) * (DIST_MAX - distanza) / (DIST_MAX - 5)
# Attiva il buzzer
buzzer.freq(int(frequenza))
buzzer.duty_u16(512) # Volume al 50%
else:
# Spegni il buzzer se l'oggetto è troppo lontano
buzzer.duty_u16(0)
time.sleep(0.1)