초보자를 위한 아두이노 코딩 입문-11: “초음파 센서 SR-04 거리 측정”steemCreated with Sketch.

in #kr6 years ago (edited)

그림_10.png

거리 측정을 위한 초음파 센서 SR-04는 아두이노 센서 중에서 가장 중요한 센서 중의 하나이다. 초음파 센서의 구조는 크리스탈 발진회로에 의해서 40kHz 주파수를 만들어 Triggering 하여 쏜 다음 벽면으로부터의 반사파 즉 echo를 수신하는데 그 사이 경과 시간을 정밀하게 측정하여 공기 중의 초음파 속도와 곱하여 거리를 환산한다.

그림_03.png

※본 블로그 내용은 시사성이 거의 없는 교육 훈련 성격이 강하여 향 후 새로이 스팀잇에 오시게 되는 회원분들에게 노출을 위해 Reposting 될 수도 있음을 사전에 공지 드립니다.

초음파 센서는 주둥이형 센서의 높이가 1cm 정도이므로 50cm 거리 측정 실험에서든 이 정도의 오차 범위 내에 있어야 한다. 실제 초음파 센서의 측정 범위는 물론 제품에 따라서 편차가 있지만 최대 5∼7m 까지의 거리 측정이 가능하기도 하다.

최대 측정 거리는 수직으로 마주한 벽면을 대상으로 500∼700 cm 이며 그 이상의 거리에서는 0 cm 라는 결과를 보여 준다. 한편 반사파가 돌아오지 못할 정도로 벽면에 기울여 초음파를 발사하는 경우에도 0 cm 라는 결과를 줄 수 밖에 없다. 주변 환경 에서 보면 울퉁불퉁 튀어 나온 부분이 많기 때문에 갑자기 이상한 숫자를 보여 줄 수도 있음에 유의하자.

그림_02.png

초음파 센서의 배선은 Vcc 는 반드시 5V 에 배선한다. 3.3V에서도 동작할 수 있다고는 하나 측정 거리가 짧아질 수 도 있음에 유의하자. Trig 와 Echo는 반드시 2번과 3번에 배선하도록 한다. 만약 다른 디지털 데이터 핀으로 변경하고자 한다면 반드시 아두이노 핀 다이아그램을 보고 물결표시(∼)가 있는 즉 PWM(Pulse Width Modulation) 이 가능한 핀으로 바꾸도록 해야 한다.

그림_04.png

한편 4개의 점퍼 선을 사용하여 배선할 수 있지만 여기서는 초음파 센서의 4개의 다리 핀 중 양끝의 2개 즉 Vcc(5V) 핀과 GND 핀을 니퍼로 편 후 Trig 와 Echo 핀을 직접 아두이노 디지털 핀 2번과 3번에 직접 꽂아서 세워 고정하도록 한다.
그림_06.png

그림_07.png

초음파 센서 Trig 와 Echo 핀을 슬롯에 끼워 고정해 두면 초음파 거리 시험에 대단히 편리하며 전원을 연결하기 위한 2개의 점퍼선만 필요하게 된다.

초음파 센서는 주둥이형 센서의 높이가 1cm 정도이므로 50cm 거리 측정 실험에서든 이 정도의 오차 범위 내에 있어야 한다. 실제 초음파 센서의 측정 범위는 물론 제품에 따라서 편차가 있지만 최대 5∼7m 까지의 거리 측정이 가능하기도 하다.

최대 측정 거리는 수직으로 마주한 벽면을 대상으로 500∼700 cm 이며 그 이상의 거리에서는 0 cm 라는 결과를 보여 준다. 한편 반사파가 돌아오지 못할 정도로 벽면에 기울여 초음파를 발사하는 경우에도 0 cm 라는 결과를 줄 수 밖에 없다. 주변 환경 에서 보면 울퉁불퉁 튀어 나온 부분이 많기 때문에 갑자기 이상한 숫자를 보여 줄 수도 있음에 유의하자.

초음파 센서의 배선은 Vcc 는 반드시 5V 에 배선한다. 3.3V에서도 동작할 수 있다고는 하나 측정 거리가 짧아질 수 도 있음에 유의하자. Trig 와 Echo는 반드시 2번과 3번에 배선하도록 한다. 만약 다른 디지털 데이터 핀으로 변경하고자 한다면 반드시 아두이노 핀 다이아그램을 보고 물결표시(∼)가 있는 즉 PWM(Pulse Width Modulation) 이 가능한 핀으로 바꾸도록 해야 한다.

한편 4개의 점퍼 선을 사용하여 배선할 수 있지만 여기서는 초음파 센서의 4개의 다리 핀 중 양끝의 2개 즉 Vcc(5V) 핀과 GND 핀을 니퍼로 편 후 Trig 와 Echo 핀을 직접 아두이노 디지털 핀 2번과 3번에 직접 꽂아서 세워 고정하도록 한다.

그림_11.png

초음파 센서 Trig 와 Echo 핀을 슬롯에 끼워 고정해 두면 초음파 거리 시험에 대단히 편리하며 전원을 연결하기 위한 2개의 점퍼선만 필요하게 된다.

초음파 센서를 사용하기 위한 특별한 라이브러리 지원은 별도로 없다.
TRIG를 2번 ECHO를 3번 디지털 핀으로 설정한다.

마이크로 세컨드 단위로 경과 시간 정수형 변수 us를 설정한다.
cm 단위로 하는 대상물과의 거리를 정수형 변수 cm 으로 설정한다.

setup()에서 통신 속도와 TRIG 및 ECHO 핀의 모우드를 설정한다. TRIG는 초음파를 발사하라는 듀티 신호를 SR-04 보드에 보내야 하므로 출력 즉 OUTPUT 이다. 반면에 ECHO 핀은 SR-04 보드로부터 듀티 신호를 받는 핀이므로 INPUT 으로 설정해야 한다. TRIG 듀티의 시간 폭은 10 마이크로 세컨드로서 delayMicroseconds()를 사용한다. 경과 시간은 pulseln(ECHO,HIGH,50000) 명령에서 ECHO 핀이 LOW에서 HIGH 로 변화 시작을 체크하여 지속이 끝나고 LOW로 가는 시점까지 경과 시간을 50,000 마이크로 세컨드 이내에서 측정한다.

초음파 거리 실험의 간단한 예로서 모니터까지의 거리를 측정하다가 모니터 넘어 맞은 벽까지의 거리를 측정하고 다시 각도를 조정해 모니터까지의 거리를 잰 사례이다. 주변에 장해가 많다면 천정까지의 거리를 재보는 것도 괜찮을 것이다. 놀라울 정도로 정확하다.

http://blog.daum.net/ejleep1/462

그림_08.png

초음파 센서를 사용하기 위한 특별한 라이브러리 지원은 별도로 없다.
TRIG를 2번 ECHO를 3번 디지털 핀으로 설정한다.

마이크로 세컨드 단위로 경과 시간 정수형 변수 us를 설정한다.
cm 단위로 하는 대상물과의 거리를 정수형 변수 cm 으로 설정한다.

setup()에서 통신 속도와 TRIG 및 ECHO 핀의 모우드를 설정한다. TRIG는 초음파를 발사하라는 듀티 신호를 SR-04 보드에 보내야 하므로 출력 즉 OUTPUT 이다. 반면에 ECHO 핀은 SR-04 보드로부터 듀티 신호를 받는 핀이므로 INPUT 으로 설정해야 한다. TRIG 듀티의 시간 폭은 10 마이크로 세컨드로서 delayMicroseconds()를 사용한다. 경과 시간은 pulseln(ECHO,HIGH,50000) 명령에서 ECHO 핀이 LOW에서 HIGH 로 변화 시작을 체크하여 지속이 끝나고 LOW로 가는 시점까지 경과 시간을 50,000 마이크로 세컨드 이내에서 측정한다.

그림_09.png초음파 거리 실험의 간단한 예로서 모니터까지의 거리를 측정하다가 모니터 넘어 맞은 벽까지의 거리를 측정하고 다시 각도를 조정해 모니터까지의 거리를 잰 사례이다. 주변에 장해가 많다면 천정까지의 거리를 재보는 것도 괜찮을 것이다. 놀라울 정도로 정확하다.

Coin Marketplace

STEEM 0.20
TRX 0.14
JST 0.030
BTC 68140.53
ETH 3250.90
USDT 1.00
SBD 2.65