Techday

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

주피터 · 2019-10-28 · 0

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

ⓞ초음파 선세 모듈 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;
}
0
댓글 0
첫 댓글을 남겨보세요.