from machine import Pin, time_pulse_us
import time
# --- НАСТРОЙКА ПИНОВ ---
# ВНИМАНИЕ: Переставь провод Trig с 34 на 4!
trig = Pin(4, Pin.OUT)
echo = Pin(35, Pin.IN)
# Зуммер (на плате расширения он обычно висит на пине 4 или 5.
# Если не пищит, попробуй поменять на 5 или 15)
buzzer = Pin(15, Pin.OUT)
def measure_distance():
# Отправляем импульс на Trig
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(10)
trig.value(0)
# Замеряем длину импульса на Echo
try:
duration = time_pulse_us(echo, 1, 30000) # Ждем до 30 мс
if duration < 0:
return -1
# Скорость звука: 343 м/с = 0.0343 см/мкс. Делим на 2 (туда и обратно)
distance = (duration * 0.0343) / 2
return distance
except OSError:
return -1
print("Парктроник запущен! Подноси руку к датчику.")
while True:
dist = measure_distance()
if dist > 0 and dist < 100: # Если объект ближе 1 метра
print(f"Расстояние: {dist:.1f} см")
# Чем ближе, тем короче пауза (чаще писк)
if dist < 10:
buzzer.value(1)
time.sleep(0.05)
buzzer.value(0)
time.sleep(0.05)
elif dist < 30:
buzzer.value(1)
time.sleep(0.1)
buzzer.value(0)
time.sleep(0.2)
else:
buzzer.value(1)
time.sleep(0.2)
buzzer.value(0)
time.sleep(0.5)
else:
# Если далеко или нет сигнала - тишина
buzzer.value(0)
time.sleep(0.1)