프로젝트 대표사진

[ 기초 ] 아두이노 실습 - 초음파 센서를 활용한 거리측정

아두이노와 초음파 센서(HC-SR04)를 이용하여 거리를 측정해 본다
[ 기초 ] 아두이노 실습 - 초음파 센서를 활용한 거리측정 작성자 : 주피터

초음파 센서 모듈을 이용한 거리측정

 

                                                        ⓞ초음파 선세 모듈 HC-SR04

 

            1. 작동전압:DC5V

            2. 작동전류:15mA

            3. 탐지거리: 2Cm ~ 4M

            4. 크기: 45x20x15mm

 

작동 방법

 

(1) 최소 10us 정도의 트리거를 출력하여 초음파센서모듈에 Trig 핀으로 입력시킨다.

(2) 초음파모듈은 Trig 핀으로 입력된 신호를 감지하고, 자동으로 여덟개의 40kHz 펄스로 음파를 송신합니다.

(3) 이 때부터 echo핀은 High 상태가 되고, 음파가 반사되어 돌아와서 수신되면 echo핀으로 Low상태가 된다.

음파가 송신되어 돌아올때 까지의 High신호의 주기가 왕복시간 이 됩니다.

 

* 음속은 초당 340M 또는 29 microseconds 당 1Cm 거리를 이동합니다.

* 음파는 반사되어 돌아오고, 왕복거리 이므로 2로 나누어 줍니다.

* 거리(Cm) = 왕복시간(uSec) / 29 / 2  

 

 

                                                              ⓞ 그림 - 작동 펄스

 

                   

                                                                   ⓞ 그림 - 핀 배치

 

                                               

                                                                     ⓞ 실물 규격

 

 

주요 사양

 

    1. 작동전압: DC5V

    2. 대기전류: <2mA

    3. 레벨출력: high:5V ,low:0V

    4. 유도각도: not more than 15 degrees:

    5. 감지범위: 2cm-400cm

    6. 정 밀 도: 최대 0.2cm

 

                              

                                                                      ⓞ 하드웨어 구성

 

 

스케치 작성

 

< 초기화 부분 >

 

 

 

< 반복 함수 부분 >

 

 

 

< 거리구하기 함수 >

 

 

시리얼 모니터 결과

 

                                

                                                            ⓞ 시리얼 모니터 거리측정 결과

 

const int TriggerPin = 13;
const int EchoPin = 12;
long Duration = 0;

void setup()
{
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
   Serial.begin(9600);
}

void loop()
{
   digitalWrite(TriggerPin, LOW);
   delayMicroseconds(2);
   digitalWrite(TriggerPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);

   Duration = pulseIn(EchoPin, HIGH);

   long Distance_mm = Distance(Duration);

   Serial.print("Distance = ");
   Serial.print(Distance_mm);
   Serial.println(" mm");

   delay(1000);
}

long Distance(long time)
{
   long DistanceCalc;
   DistanceCalc = ((time/2.9)/2);
   return DistanceCalc;
}

 

※ e4ds make에 등록된 자료는 e4ds와 지식 제공자(기업포함) 이외에는 상업화 용도로 사용할 수 없습니다. 영리 목적 이외의 사용 시 출처를 밝혀야 합니다.

Comments

관련 Make

관련 상품