import machine
import time
# Определяем пины для HC-SR04 датчика
TRIG_PIN = machine.Pin(14, machine.Pin.OUT)
ECHO_PIN = machine.Pin(12, machine.Pin.IN)
# Определяем пины для реле, подключенных к лампочкам
LAMP1_PIN = machine.Pin(13, machine.Pin.OUT) # Лампочка 1
LAMP2_PIN = machine.Pin(16, machine.Pin.OUT) # Лампочка 2
LAMP3_PIN = machine.Pin(17, machine.Pin.OUT) # Лампочка 3
# Пороговые значения расстояния для каждой лампочки
DISTANCE_THRESHOLD_LAMP1 = 100 # Порог для первой лампочки
DISTANCE_THRESHOLD_LAMP2 = 50 # Порог для второй лампочки
DISTANCE_THRESHOLD_LAMP3 = 20 # Порог для третьей лампочки
# Функция для измерения расстояния с помощью HC-SR04
def measure_distance():
TRIG_PIN.off()
time.sleep_us(2)
TRIG_PIN.on()
time.sleep_us(10)
TRIG_PIN.off()
pulse_start = 0
pulse_end = 0
while ECHO_PIN.value() == 0:
pulse_start = time.ticks_us()
while ECHO_PIN.value() == 1:
pulse_end = time.ticks_us()
if pulse_start and pulse_end:
pulse_duration = time.ticks_diff(pulse_end, pulse_start)
distance = (pulse_duration * 0.0343) / 2
return distance
else:
return -1 # Если измерение не удалось
while True:
distance = measure_distance()
if distance != -1:
print("Distance: {:.2f} cm".format(distance))
# Управление лампочками в зависимости от расстояния
if distance < DISTANCE_THRESHOLD_LAMP1:
LAMP1_PIN.on() # Включаем лампочку 1
print('Lamp 1 ON')
else:
LAMP1_PIN.off() # Выключаем лампочку 1
print('Lamp 1 OFF')
if distance < DISTANCE_THRESHOLD_LAMP2:
LAMP2_PIN.on() # Включаем лампочку 2
print('Lamp 2 ON')
else:
LAMP2_PIN.off() # Выключаем лампочку 2
print('Lamp 2 OFF')
if distance < DISTANCE_THRESHOLD_LAMP3:
LAMP3_PIN.on() # Включаем лампочку 3
print('Lamp 3 ON')
else:
LAMP3_PIN.off() # Выключаем лампочку 3
print('Lamp 3 OFF')
else:
print("Error: Measurement failed")
time.sleep(1) # Задержка перед следующим измерением