학습목표 : 센서작동시키기
<1>
import RPi.GPIO as GPIO
import time
# GPIO 모드 설정
GPIO.setmode(GPIO.BCM)
# 핀 번호 설정
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def distance():
# 트리거를 짧게 HIGH
GPIO.output(TRIG, True)
time.sleep(0.00001) # 10us
GPIO.output(TRIG, False)
# ECHO 핀이 HIGH 될 때까지 시간 측정 시작
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# ECHO 핀이 LOW 될 때까지 시간 측정 종료
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
# 시간 차 계산
pulse_duration = pulse_end - pulse_start
# 거리 계산 (소리 속도 34300 cm/s)
dist = pulse_duration * 17150
dist = round(dist, 2) # 소수 둘째 자리까지
return dist
try:
while True:
dist = distance()
print(f"Measured Distance = {dist} cm")
time.sleep(1)
except KeyboardInterrupt:
print("측정 종료")
GPIO.cleanup()