초음파 센서 - 거리측정
2018. 12. 21. 11:46
초음파 센서란?
우선 초음파란 사람의 귀로는 들을 수 없는 20khz대 이상의 음을 말합니다. 초음파 센서는 이러한 초음파를 이용하여 가까운 거리에 있는 물체 혹은 사람의 유 무, 거리측정, 속도 측정등에 사용 됩니다.
[그림 1 - 1] 초음파센서 - 출저:메카솔루션
초음파 센서는 초음파를 발생시켜 되돌아 오는 시간을 측정해 물체의 속도 및 거리를 계산 할 수 있으며 초음파를 발생시키는 Trig 핀, 물체에 반사되어 되돌아 오는 초음파를 받는 Echo핀, GND, VCC로 구성 되어 있습니다.
[그림 1-2] 초음파센서 원리
*거리구하는 공식
거리는 시간*속력 이므로 Echo가 HIGH Level로 유지한 시간 t에 초음파의 속력 (약 344m/s)을 곱하고 거리를 왕복했으므로 2나눔
Distan = (걸린시간(t) x 음속(m/s) ) / 2
Arduino sketches
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 35 36 37 38 | int echo = 2; int trig = 3; int led = 4; float cm = 0; int duration = 0; void setup() { Serial.begin(9600); pinMode(echo, INPUT); pinMode(trig, OUTPUT); pinMode(led, OUTPUT); } //led와 trig는 OUTPUT 모드로 설정해 주며 //echo는 우리가 HIGH 또는 LOW를 설정해 주는 것이 아니라, //읽어 오는 것 이기 때문에 INPUT으로 설정한다. void loop() { digitalWrite(trig,HIGH); delay(10); digitalWrite(trig,LOW); duration = pulseIn(echo,HIGH); // pulseIn() 메서드는 첫 번째 인자의 펄스가 두번째 인자인 레벨을 유지한 시간을 반환한다. cm = ( (float)(344*duration) / 10000 ) / 2; if(cm <= 3) { digitalWrite(led,HIGH); } else { digitalWrite(led,LOW); } //거리가 3센치 이하면 LED를 점등하고 아니면 소등 한다. } | cs |
'embedded > arduino' 카테고리의 다른 글
서보모터 - 버튼으로 서보모터 각도 제어 (1) | 2018.12.21 |
---|---|
Shield 와 Module (0) | 2018.12.21 |
이더넷 쉴드(Ethernet Shield) (0) | 2018.12.21 |