본문 바로가기

Project/CloudIOT

라즈베리 파이에 초음파 센서 연결하기

728x90

오늘은 초음파 센서를 라즈베리에 연결하는 방법에 대해서 알아보겠다!
인터넷에 열심히 뒤져봤는데 다들 1㏀ 2㏀ 저항으로 연결하는데 우리가 가진 건 110과 220...

(저항 계산기 어플로 쉽게 알 수 있다)


그래서 다른 방법을 찾아 저항 없이 연결하는 방법을 알아냈다
(그래도 되나?)

우리가 사용할 초음파 센서는 HC-SR04

센서의 각 부분을 라즈베리 파이와 연결해야 하는데

VCC라인에 5V를 연결
GND라인에 GND를 연결
GPIO23에 Echo를 연결
GPIO24에 Trig를 연결

참고 : https://blog.naver.com/PostView.naver?blogId=elepartsblog&logNo=220288246775

이 방법으로 연결하면 된다.

출처 : https://developmentdiary.tistory.com/607

라즈베리 파이의 GPIO는 표를 보며 확인하면 됨.

사진에서 좌측이 표에서 위쪽.


검정 선(VCC)을 전압 5V에(4번핀)
갈색 선(Trig)을 GPIO24번에(18번핀)
흰색 선(Echo)을 GPIO23번에(16번핀)
회색 선(Gnd)을 GND에(6번핀)

암-수 점퍼선으로 각각 연결해주면 된다.



연결 완.

import RPi.GPIO as gpio
import time
 
TRIGER = 24
ECHO = 23
 
gpio.setmode(gpio.BCM)
gpio.setup(TRIGER, gpio.OUT)
gpio.setup(ECHO, gpio.IN)
 
#period = endTime - startTime에서 startTime값이 null인 경우 발생->초기화
startTime = time.time()  
 
try:
    while True:
        gpio.output(TRIGER, gpio.LOW)
        time.sleep(0.1)
        gpio.output(TRIGER, gpio.HIGH)
        time.sleep(0.00002)
        gpio.output(TRIGER, gpio.LOW)
 
        while gpio.input(ECHO) == gpio.LOW:
            startTime = time.time()   # 1sec unit
 
        while gpio.input(ECHO) == gpio.HIGH:
            endTime = time.time()
 
        period = endTime - startTime
        dist1 = round(period * 1000000 / 58, 2)
        dist2 = round(period * 17241, 2)
 
        print("Dist1", dist1, "cm", ", Dist2", dist2, "cm")
        
        if dist1 < 10 and dist2 < 10:
            print("detect")
except:
    gpio.cleanup()

거리가 10cm 이내면 detect 출력

728x90
LIST