from machine import Pin, PWM, time_pulse_us
from time import sleep, sleep_us
# 핀 설정
trigger = Pin(17, Pin.OUT)
echo = Pin(16, Pin.IN)
led = Pin(28, Pin.OUT)
buzzer = PWM(Pin(13))
# 도레미파솔라시도 음계 (Hz)
notes = (262, 294, 330, 349, 392, 440, 494, 523)
def get_distance():
"""초음파 센서로 거리(cm) 측정"""
trigger.low()
sleep_us(2)
trigger.high()
sleep_us(10)
trigger.low()
pulse_time = time_pulse_us(echo, 1, 1000000) # Echo 신호 길이(us)
distance = (pulse_time * 0.0343) / 2
return distance
def play_melody():
"""도레미파솔라시도 멜로디 재생"""
for f in notes:
buzzer.freq(f)
buzzer.duty_u16(32768) # 소리 크기 (0~65535)
sleep(0.4)
buzzer.duty_u16(0)
sleep(0.1)
buzzer.duty_u16(0) # 완전히 끄기
while True:
distance = get_distance()
print("거리:", distance, "cm")
if distance <= 100: # 100cm 이하일 때 반응
led.value(1)
play_melody()
else:
led.value(0)
sleep(1)