안녕하세요. 전자공이 입니다.
본문에서는 초음파 센서를 이용해 아두이노로 거리를 측정하는 것을 해보려고 합니다.
이번에 사용할 초음파 센서입니다.
HC-SR04 모델로 사양과 다르게 거리 측정 시 각이 잘 맞으면 5cm~120cm까지 거리 측정이 되는 모듈입니다.
초음 차 센서가 동작하는 원리는 간단하게 위의 그림처럼 두 개의 철망으로 덮인 구멍이 있는데
이 구멍 중 1개는 초음파를 발생시키고 다른 한 구멍은 초음파가 부딪혀 되돌아오는 것을 받아들이는 구멍입니다.
보낸 초음파 각도가 돌아올 때 받아들이는 각도와 조금이라도 다르면 인식이 안되거나 거리가 갑자기 멀게 측정이 됩니다.
-준비물-
아두이노
브레드 보드
HC-SR04 초음파 센서
점퍼선
-회로 구성-
-----------------------------------------------------------------------------------------------------------------------------------
아두이노------------------<>------------------초음파 센서
pin2------------------<>------------------Trig
pin3------------------<>------------------Echo
VCC(5v)------------------<>------------------VCC
GND------------------<>------------------GND
-----------------------------------------------------------------------------------------------------------------------------------
-코딩 및 설명-
-----------------------------------------------------------------------------------------------------------------------------------
int echo = 2; // echo는 아두이노 2번 핀 설정
int trig = 3; // trig는 아두이노 3번 핀 설정
void setup() {
Serial.begin(9600); // 시리얼 9600바이트 속도 설정
pinMode(trig, OUTPUT); // trig OUTPUT설정
pinMode(echo, INPUT); // echo INPUT 설정
}
void loop() {
digitalWrite(trig, LOW); //trig를 LOW로
digitalWrite(echo, LOW); //echo를 LOW로
delayMicroseconds(2); //딜레이를 마이크로초 단위로 설정
digitalWrite(trig, HIGH); //trig를 HIGH로
delayMicroseconds(10); //딜레이를 마이크로초 단위로 설정
digitalWrite(trig, LOW); //trig를 LOW로
unsigned long duration = pulseIn(echo, HIGH); //echo를 HIGH로
float distance = ((float)(340 * duration) / 10000) / 2; // 값을 계산하여 cm로 산출하기 위한 식
Serial.print(distance); // 시리얼로 거리 값을 표시함
Serial.println("cm"); // cm단위로 표시
delay(1000); // 시리얼에 값이 표시되는 딜레이 설정
}
-----------------------------------------------------------------------------------------------------------------------------------
코드를 업로드하고 시리얼 모니터를 띄우게 되면 이렇게 표시된다.
값이여러 개 떠있는 데 이는 내가 거리를 바꾸며 띄웠기 때문이다.
아마 위의 코딩 그대로 사용한다면 정신없이 값이 뜰 것이니 코드의 마지막 부 딜레이를 100에서 1000으로 놓고 거리가 잘 바뀌는지 보는 것도 좋다.
위의 방법으로 초음파 센서를 이용해 거리를 측정했다면 활용할 수 있는 부분도 많으니 응용을 해보는 것을 추천한다.
약간의 응용
아두이노 초음파 센서와 LED를 이용 하여 거리를 측정 해보자
-아두이노 초음파 센서 끝-
'코딩 > 아두이노' 카테고리의 다른 글
아두이노 CDS로 LED 제어 해보자(LED 미터기) (0) | 2019.11.13 |
---|---|
아두이노 온습도 센서 제어 해보자 (0) | 2019.11.11 |
아두이노로 광센서 값을 시리얼 모니터로 출력해보자 (0) | 2019.11.08 |
아두이노 시리얼 통신으로 LED를 제어 해보자 (0) | 2019.11.05 |
아두이노 시리얼 모니터로 "Hello world" 출력 해보자 (0) | 2019.11.04 |
댓글