본문 바로가기

Arduino

거리측정 센서 - HC-SR04


안녕하세요.

폰입니다.

오랜만에 센서 가지고 놀고 있는데요.

9저가 잘 까먹어서 저장글로 올리고 있습니다.


먼저 이번에 쓸 센서는 HC-SR04인 초음파를 사용하는 거리측정 센서입니다.

(사진을 스포트로 찍는 바람에 화질과 크기가...)


센서를 사용하기 전에는 항상 데이터시트를 봐야되죠.

작동 전압 : DC 5V

작동 전류 : 15mA

작동 주파수 : 40Hz

최대 측정거리 : 4m (=4000mm)

최소 측정거리 : 2cm (=20mm)

측정 각도 : 15도

크기 : 45 * 20 * 15 mm

나머지 2개는 어떻게 적어야 될지 모르겠습니다...


뭐 대충 이렇게 됩니다.



전 이렇게 끼웠습니다.


소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
long Duration = 0;
 
int Trig = 8;
int Echo = 9;
void setuo()
{
    pinMode(Trig, OUTPUT);
    PinMode(Echo, INPUT);
}
 
void loop()
{
    digitalWrite(Trig, LOW);
    delayMicroseconds(2);
    digitalWrite(Trig, HIGH);
    delayMicroseconds(10);
    degitalWrite(Trig, LOW);
 
    Duration = pulseln(Echo, 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;
}
cs

(어 왜 왼쪽으로 출력되지?...)

하여튼 대충 봐서는 아시겠죠?

센서에 어떤 핀인지 다 나와있습니다.


이렇게 해서 시리얼 모니터로 보니


제대로 나오는 것 같은데

데이터 시트에 있는것처럼 너무 가까우거나 멀면 거리를 제대로 측정하지 못하는 문제가 있습니다.


20mm < 측정가는 거리 < 4000mm


거의 이렇게 보시면 됩니다.


여기서 필요하신 거 있으면 응용하셔서 사용하시면 되겠습니다.




자료 출처 : 데이터시트 - http://www.electroschematics.com/8902/hc-sr04-datasheet

소스코드 샘플 - http://mechasolutionwiki.com/index.php?title=HC-SR04_%EC%B4%88%EC%9D%8C%ED%8C%8C_%EA%B1%B0%EB%A6%AC%EC%84%BC%EC%84%9C