from machine import Pin, ADC, time_pulse_us
from time import sleep, sleep_us
# ----------------------------
# 핀 설정
# ----------------------------
# 초음파 센서
trigger = Pin(17, Pin.OUT)
echo = Pin(16, Pin.IN)
# 거리 감지 LED
led_distance = Pin(28, Pin.OUT)
# 깜빡이 LED
led_blink = Pin(15, Pin.OUT)
# 조도 센서(LDR)
lightmeter = ADC(26)
# ----------------------------
# 함수: LDR 평균값 읽기
# ----------------------------
def read_light():
total = 0
for _ in range(10):
total += lightmeter.read_u16()
sleep_us(5)
return total / 10
# ----------------------------
# 메인 루프
# ----------------------------
while True:
# --- 1) 초음파 센서 거리 측정 ---
trigger.low()
sleep_us(2)
trigger.high()
sleep_us(10)
trigger.low()
pulse_time = time_pulse_us(echo, 1, 1000000)
if pulse_time < 0:
distance = None
print("초음파 센서 응답 없음")
led_distance.value(0)
else:
distance = (pulse_time * 0.0343) / 2
print("거리:", distance, "cm")
# 거리 100cm 이하 → LED ON
if distance <= 100:
led_distance.value(1)
else:
led_distance.value(0)
# --- 2) 외부 LED 깜빡이 ---
led_blink.toggle()
# --- 3) 조도 센서 측정 ---
adc_val = read_light()
lux = (1 - (adc_val / 65535)) * 1000
if lux <= 100:
print(f"{lux:.1f} → 어두움")
elif lux <= 400:
print(f"{lux:.1f} → 보통")
else:
print(f"{lux:.1f} → 밝음")
sleep(0.5)