초음파(Ultrasonic)란, 인간이 들을 수 있는 20~20000Hz 사이의 영역보다 더 높은 주파수를 가진다.
초음파의 속도는 일반 공기중에서 약 340m/s이며, 파동의 성질인 확산, 흡수, 산란 등에 의해 감쇠하는 성질을 가지고 있다.
초음파 센서는 이미 로봇 청소기 같은 가전제품에서부터 자동차의 감지 센서, 초음파 탐지기 등 의료용, 산업용에 이르기까지 매우 다양한 분야에서 활용되고 있다. 초음파 센서는 종류에 따라 생성하는 주파수 대역이 다르며, 최대 측정할 수 있는 거리가 다르다. 우리가 사용할 초음파 센서는 5V 기준 2cm~450cm까지 측정 가능하다.
거리측정을 위한 초음파 센서는 송신부(Trigger)와 수신부(Echo)로 나뉘어져 있으며, 송신부에서 일정한 시간의 간격을 둔 짧은, 초음파를 발생시키고, 사물에 부딪혀 돌아온 초음파 신호를 수신부에서 받아, 이에 대한 시간차를 통해 거리를 계산한다. 이를 통해 장애물의 유무, 물체의 거리 또는 속도 등을 측정할 수 있다. 초음파를 발생시키는 원리는 피에조 부저가 소리나는 원리인 피에조효과(압전효과)와 같다.
초음파센서로 거리 계산하는 방법
1cm를 이동하는데 걸리는 시간은 다음과 같이 구할 수 있다.
따라서, t = 2 * 0.01 / 340 = 58.824µs 로, 초음파가 1cm를 이동하는데 걸리는 시간은 약 29µs가 걸리며, 초음파가 반사된 물체와의 거리는 다음과 같이 구할 수 있다.
준비물
NO | 부품명 | 수량 |
1 | 아두이노 UNO R3 | 1 |
2 | 초음파 센서(HC-SR04) | 1 |
4 | 330Ω 저항 | 1 |
5 | 브레드 보드 | 1 |
6 | 점퍼 케이블 | 6 |
회로도
코드
코드 보기int trig = 8; // 송신부 int echo = 9; // 수신부 float duration=0; float distance=0; void setup() { Serial.begin(9600); pinMode(trig, OUTPUT); pinMode(echo, INPUT); } void loop() { digitalWrite(trig, HIGH); // 초음파 송신 delay(10); digitalWrite(trig, LOW); duration = pulseIn(echo, HIGH); // Echo pin이 HIGH를 유지한 시간 저장 distance = ((float)(340 * duration) / 10000) / 2; // 거리 계산 // 측정된 거리 값를 시리얼 모니터에 출력 Serial.print(distance); Serial.println("cm"); }
실습
Leave a Reply
You must be logged in to post a comment.