본문

초음파 센서 실습

반응형

# 초음파 센서 실습


1. 초음파 센서 회로구성



2. source

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
int echo = 3// Echo Port
int trig = 2// Trigger Port
 
unsigned long duration;
float distance;
 
void setup()
{
    Serial.begin(9600);
    pinMode(echo, INPUT);
    pinMode(trig, OUTPUT);
}
 
void loop()
{
    // Trigger Signal Output
    digitalWrite(trig, HIGH);
    delay(10);
    digitalWrite(trig, LOW);
   
    // Echo Signal Input
    duration = pulseIn(echo, HIGH);
   
    // Calcurate distance
    distance = ((float)(340 * duration) / 10000 )/ 2;
    Serial.print(distance);
    Serial.println("cm");
    delay(100);
}
 
cs


3. function 설명

1
pulseIn(pin, value);
cs

여기서, pin은 입력 포트를 지칭하며, value는 포트의 레벨(LOW/HIGH)을 지정한다이 함수의 기능은 입력 포트의 신호의 주기를 리턴 해 준다예를 들면, 위에 예제처럼 HIGH로 지정되어 있으면, echo 핀의 레벨이 HIGH가 유지되고 있는 시간을 마이크로세켄드(us) 단위로 리턴을 해 준다, 초음파 센서 에코 펄스의 길이를 시간으로 받을 수 있다길이를 측정하는 방법으로 사용하기 위해서는 이 시간을 1/2 값을 사용하면 된다리턴 된 duration 값은 us단위의 시간이기 때문에, 이를 거리로 환산을 하려면 음파의 속도인 340m/s를 이용하면 된다. 우리는 거리 계산을 cm 단위로 하기 때문에거리(cm) = (34000(cm) * duration / 10^6 )/2 이 식을 이용하면 된다.

 

4. TEST

코드를 작성하고 컴파일 후에 업로드를 하고, 그 결과를 시리얼 포트로 출력을 해 보면, 비교적 정확하게 거리 측정이 가능하다.




P.S. 관련 자료

http://server-engineer.tistory.com/admin/entry/post/?id=390


반응형

공유

댓글