주택 건물 초음파 거리계 HC-SR04를 Arduino에 연결하는 방법. HC SR04 센서와 아두이노 초음파 센서 HC SR04를 이용한 거리측정기

초음파 거리계 HC-SR04를 Arduino에 연결하는 방법. HC SR04 센서와 아두이노 초음파 센서 HC SR04를 이용한 거리측정기

여러분, 안녕하세요.
이 미니 리뷰에서 우리는 초음파 모듈거리 측정...

즉시 사과드립니다. 포장이나 개봉은 없습니다. 나는 다른 리뷰에서 그것들을 좋아하지 않으며 내 것을 망치지 않을 것입니다. 일부 주문이 특별한 포장이나 매우 음란한 형태로 도착하지 않는 한...
화장실에 갈 때 자동으로 조명이 켜지고 나갈 때 조명이 꺼지는 아이디어가 떠올랐습니다. 이러한 목적을 위해 pir 스위치와 pir 센서를 별도로 주문했습니다.



스위치는 모든 가족 구성원이 고유하게 방문하는 방에 설치되었으며...
그리고 화장실 방문의 일반적인 절차를 수행하는 동안 아무도 lezginka 춤을 출 수 없으며 일반적인 자세로 얼어 붙는 것이 모든 사람에게 일반적이라는 것이 밝혀졌습니다. 이곳은 뱌카가 기다리고 있는 곳입니다. 선과 영원을 생각하는 것만으로도 빛이 쾅하고 꺼지는 것이 꽤 짜증납니다.
스위치를 조정하는 모든 방법을 시도했지만 원하는 결과를 얻을 수 없었습니다.
필요한 존재 센서를 감지 센서로 교체하여 우리 자신과 물리학을 속이는 데 실패했습니다.
그래서 스위치와 사용하지 않은 pir 센서가 장기 보관더 나은 때까지, 그리고 그들의 자리는 빼앗겼습니다...
아직 어디에도 부착되지 않은 게이트 시스템용 결합 레이더.


전자레인지 장치가 자연스럽게 꺼졌는데 왜 머리 꼭대기를 전자레인지에 노출시켜야 합니까? IR 매트릭스만 남습니다.
문제는 매우 구체적입니다. 최소 구역은 방의 크기입니다. 쾅하고 방문하면 조명이 켜지고 꺼집니다. 하지만 한 가지 단점이 있습니다. 센서는 매우 세심하며 모든 것이 제자리에 있는 것을 좋아합니다. 종이롤을 옮겼거나 변좌를 낮추거나 올렸을 경우 재설정이 필요합니다. 그리고 그의 가격표는 평범하지 않습니다.
그래서 해결책을 찾기 위한 노력이 계속되었습니다.
인터넷에서 나는 간단한 주제에 관한 사이트를 발견했습니다. 회로 차단기초음파 센서에 불이 들어옵니다.
주제가 흥미로워 보였습니다. 특히 펌웨어로 휠을 다시 만들 필요가 없기 때문에 저자는 우리를 위해 최선을 다했으며 그에 대해 감사드립니다.
다이어그램이 있고 펌웨어가 있습니다. 남은 것은 인장을 만들고 출력물에 본격적인 존재 센서를 얻는 것입니다. 아니면 이해하지 못하거나... 두고 볼게요...
센서는 banggood"e에서 주문했습니다. 배송 시간의 안정성 때문에 이 상점이 마음에 듭니다. 트랙 없이 28-30일 동안 주문하면 됩니다.
시간에 맞춰 추적하지 않고 도착했습니다. 트랙이없는 소포에 대한 Banggood의 포장은 표준이며 쓰레기 봉투이며 그게 전부입니다.
센서는 정전기 방지 소재로 포장되어 있어 우편 문제를 방지할 수 있었던 것 같습니다. :0)
아쉽게도 집에 가는 길에 쓰레기봉투를 버렸고, 대전방지제는 이미 집에 있어서 센서 외에는 보여줄 게 ​​없고, 제조 과정에서 센서 자체가 이미 닳아버렸습니다(다리는 쭉 뻗은 상태였습니다) 장치의 프로세스.
TTX 센서:
- 45*20*23mm. LxWxD(D - 다리를 곧게 편 상태)
- 무게 - 8.28g
- 공급 전압 - DC 5V
- 소비전류 - 15mA
- 최소 작동 거리 - 2cm.
- 최대 작동 거리 - 4미터
- 감지 영역 각도 - 15도
간단히.
센서는 에코 원리에 따라 작동합니다. 센서의 한 피에조는 40kHz 주파수의 펄스 패킷을 방출하고, 신호는 센서 앞 표면에서 반사되고, 반사된 신호는 다른 피에조에 의해 수신되며, 처리 장치는 수신된 데이터를 처리하고 펄스를 출력합니다. 길이는 초음파 신호의 거리에 비례합니다.
저것들. 출력에는 충동이 있으며 그 지속 기간은 우리에게 중요합니다.
우리가 제조하는 자동 스위치/스위치에서는 마이크로컨트롤러의 메모리에 저장된 펄스의 지속 시간과 새로운 반사 펄스의 지속 시간을 비교합니다. 새 펄스의 지속 시간이 메모리에 있는 것보다 짧으면 마이크로컨트롤러는 감지 영역에 물체가 있고 부하를 켜야 한다고 결정합니다... 펄스 길이가 더 길면 아무것도 하지 않거나 부하가 켜져 있으면 끄십시오.
더 나아가:
센서 자체.


마이크로 회로의 표시가 지워졌습니다.


빨리 다시 그려보자 기성 다이어그램 Diptrace에서는 인장을 그리고 실험용 스카프를 만듭니다.

이미 많은 분들이 그 과정에 지쳐 계실 거라 생각해서 제조 과정을 스포일러로 숨겼습니다.
제가 스카프 만드는 방법을 한 번 보여드린 적이 있어요. 이번에는 사진을 몇 장 찍었는데 버리기 아깝네요.
더 이상 프로세스로 사람들을 괴롭히지 않을 것입니다. 보드에 대해 궁금한 점이 있으면 개인 메시지를 작성하세요.
해당 주제에 대해 제가 수집한 내용과 Diptrace의 다이어그램 및 인쇄 가능한 스카프를 다운로드할 수 있는 링크입니다.
사진 몇 장.
스카프와 템플릿을 준비합니다. 포토레지스트가 도포되어 있습니다.


우리는 조명하고, 씻고, 에칭합니다.


포토레지스트를 에칭하고 씻어냅니다.


마스크를 적용하고 템플릿을 비춥니다.


스카프를 자르고 뚫습니다.



스카프 그 자체.
회로는 ATtiny13에 조립되었습니다.
테스트용으로는 왜 이렇게 아름다운가요? 그것은 el 아래의 다른 보드와 동시에 수행되었습니다. 짐.
라디오 요소가 왜 그렇게 멍청하게 배열되어 있습니까? 시험이니까. 장치가 조립되어 작동하는지 확인합니다. 번식과 조립에는 아무런 의미가 없었습니다.


센서를 스카프에 납땜합니다.


우리는 프로그래밍합니다.


결과적으로 우리는 30mA를 소비하고 감지할 수 있는 5V 전원 공급 장치를 갖춘 기성품 미포장 존재 센서를 얻습니다. 이물질각도 15도, 거리 2cm~3.5m로 사전 프로그래밍된 감지 영역에서 작동합니다. 감지되면 LED를 켭니다.
작동 원리는 간단합니다. 우리는 필요한 곳에 센서를 지시합니다. 버튼을 누릅니다.
설정 LED(내 것은 빨간색)가 깜박이기 시작합니다.
3가지 모드로 깜박입니다.
10% LED 켜짐 - 물체가 범위를 벗어남, 로드 꺼짐.
90% LED가 켜져 있음 - 물체가 범위 내에 있고 부하가 켜져 있습니다.
50% LED가 켜짐 - 감지 영역이 비어 있고, 카운트다운은 펌웨어에 따라 60초 또는 10초 또는 1초이며 꺼질 때까지 램프가 켜집니다.
그런 다음 10초 동안 감지 구역을 벗어나야 합니다.
면적을 제한할 수 있습니다. 이렇게하려면 설정을 기억하는 순간 영역 경계에 서 있어야하므로 영역이 제한됩니다.
여권 최소 2cm를 확인합니다. 사진과 같이 면적을 제한한 후 박스와 센서 사이에 손가락을 넣으면 LED에 불이 들어오고 손가락을 떼면 꺼집니다.
상자를 0.5cm 더 가까이 이동하면 LED가 켜지고 장치가 조정을 거부합니다.


최대 4미터는 확인하지 못했습니다. 최대 거리이 장치는 3.5미터 높이의 사람을 자신있게 기록하는 것으로 확인되었습니다. ~에 3미터 15x15cm 크기의 상자로 내 손을 자신있게 고정했습니다. 부하가 켜지고 상자를 제거할 때까지 꺼지지 않습니다.
결론.
- 결과적으로 존재감 센서가 마음에 들었습니다.
- 가장 간단하고 편리한 설정.
- 실제로 작동한다.
- 저렴하고 쾌활합니다.
일반적으로 초음파 거리 측정 모듈 HY-SRF05를 기반으로 하는 적합한 장치입니다.
가까운 시일 내에 위치에 맞게 조정하겠습니다. 상자를 선택하기만 하면 됩니다.
이제 조명이 꺼질 염려 없이 원하는 위치에 고정할 수 있습니다.
관심 있는 사람들은 그것을 사용하는 더 많은 방법을 생각할 수 있습니다. 특히 이 센서는 원칙적으로 설계된 Arduino 엔지니어입니다. 아니면 그들에게는 아닐 수도 있습니다 ... +41을 구매하려고 합니다 즐겨 찾기에 추가 리뷰가 마음에 들었습니다 +41 +81
  • 브레드보드;
  • Arduino IDE 개발 환경을 갖춘 개인용 컴퓨터.
  • 1 동작 원리초음파 거리 측정기 HC-SR04

    초음파 거리 측정기 HC-SR04의 작동은 반향 위치 측정 원리를 기반으로 합니다. 소리 펄스를 공간으로 방출하고 장애물에서 반사된 신호를 수신합니다. 전파 시간별 음파장애물과 뒤로 이동하면 물체까지의 거리가 결정됩니다.

    음파의 발사는 응용 프로그램에서 시작됩니다 긍정적 충동다리 당 최소 10 마이크로초 지속 삼각거리 측정기. 펄스가 끝나자마자 거리계는 40kHz 주파수의 사운드 펄스 패킷을 앞쪽 공간으로 방출합니다. 동시에 다리에도 에코거리계는 논리 단위로 나타납니다. 센서가 반사된 신호를 감지하자마자 ECHO 핀에 논리 0이 나타납니다. ECHO 레그의 논리 장치 지속 시간(그림의 "에코 지연")에 따라 장애물까지의 거리가 결정됩니다.

    HC-SR04 거리 측정기의 거리 측정 범위는 0.3cm 해상도로 최대 4m입니다. 시야각은 30°, 유효 각도는 15°입니다. 대기 모드에서의 전류 소비는 2mA, 작동 중 - 15mA입니다.

    2 연결 다이어그램거리 센서

    초음파 거리 측정기는 +5V의 전압으로 구동됩니다. 다른 두 핀은 Arduino 디지털 포트 11과 12에 연결됩니다.



    3 물체까지의 거리 구하기센서 HC-SR04에서

    이제 장애물까지의 거리를 결정하여 직렬 포트로 출력하는 스케치를 작성해 보겠습니다. 먼저 TRIG 및 ECHO 핀의 번호를 설정합니다. 이는 핀 12와 11입니다. 그런 다음 트리거를 출력으로 선언하고 에코를 입력으로 선언합니다. 9600보드에서 직렬 포트를 초기화합니다. 사이클이 반복될 때마다 고리()거리를 읽고 이를 포트에 출력합니다.

    Const int trigPin = 12; const int echoPin = 11; 무효 설정() ( pinMode(trigPin, OUTPUT); // 트리거 - 출력 핀 pinMode(echoPin, INPUT); // 에코 - 입력 digitalWrite(trigPin, LOW); Serial.begin(9600); // 시퀀스 초기화 포트 } 무효 루프() (장거리 = getDistance(); // 센서로부터의 거리를 구합니다. Serial.println(distance); // 시리얼 포트로 출력 Delay(100); } // 물체까지의 거리를 cm 단위로 결정 긴 getDistance() (긴 distacne_cm = getEchoTiming() * 1.7 * 0.01; distacne_cm을 반환합니다; } // 지연 시간 결정 긴 getEchoTiming() ( digitalWrite(trigPin, HIGH); // 10 µs 트리거 펄스를 생성합니다.layMicroseconds(10); digitalWrite(trigPin, LOW); // echoPin 핀의 HIGH 레벨 지속 시간 μs 결정: long Duration = pulseIn(echoPin, HIGH); 반환 기간; }

    기능 getEchoTiming()트리거 펄스를 생성합니다. 이는 거리 측정기가 사운드 패킷을 우주로 방출하기 시작하는 트리거인 10마이크로초 펄스를 생성합니다. 다음으로 음파 전송 시작부터 에코 도착까지의 시간을 기억합니다.

    기능 getDistance()물체까지의 거리를 계산합니다. 학교 물리학 과정에서 우리는 거리가 속도 x 시간과 같다는 것을 기억합니다: S = V×t 공기 중 소리의 속도는 340m/초이고 시간은 마이크로초(변수)로 알고 있습니다. 지속). 시간을 벌기 위해 지속초 단위로 이를 1,000,000으로 나누어야 합니다. 소리는 물체와 뒤로 두 배의 거리를 이동하므로 결과도 절반으로 나누어야 합니다. 그래서 물체까지의 거리가 S = 34000cm/초 × 지속 시간 / 1,000,000초 / 2 = 1.7cm/초 / 100,이것이 우리가 스케치에 쓴 것입니다.

    마이크로컨트롤러는 나눗셈 연산보다 곱셈 연산을 더 빠르게 수행하므로 :100 동등한 제품으로 교체했어요 ×0.01.

    4 업무용 도서관반향탐지기 HC-SR04 포함

    또한 초음파 거리 측정기와 함께 작동하도록 많은 라이브러리가 작성되었습니다. 예를 들어 Ultrasonic 라이브러리가 있습니다. 라이브러리 설치는 표준으로 수행됩니다. 다운로드하고 디렉터리에 압축을 풉니다. /라이브러리/, Arduino IDE 폴더에 있습니다. 그 후에는 도서관을 사용할 수 있습니다.

    라이브러리를 설치했으면 새로운 스케치를 작성해 봅시다.

    #포함하다 // 초음파 라이브러리를 연결합니다ultrasonic(12, 11); // 삼각 - 12, 에코 - 11 무효 설정() ( Serial.begin(9600); // 시퀀스 초기화 포트 } 무효 루프() ( float dist_cm = 초음파.범위(CM); // 거리(cm) Serial.println(dist_cm); // 포트까지의 거리를 출력합니다. Delay(100); }

    작동 결과는 동일합니다. 직렬 포트 모니터는 물체까지의 거리를 센티미터 단위로 표시합니다.

    스케치로 쓰면 float dist_cm = 초음파.Ranging(INC);- 거리는 인치 단위로 표시됩니다.

    5 작업의 결론소나 HC-SR04 포함

    그래서 우리는 당신을 Arduino에 연결했습니다 초음파 거리 측정기 HC-SR04와 그로부터 두 개의 데이터를 수신했습니다. 다른 방법들: 특수 라이브러리를 사용하거나 사용하지 않고.

    라이브러리를 사용하면 코드의 양이 크게 줄어들고 프로그램의 가독성이 향상된다는 이점이 있습니다. 장치의 복잡함을 파헤칠 필요가 없으며 즉시 사용할 수 있습니다. 그러나 여기에는 단점이 있습니다. 장치가 작동하는 방식과 장치에서 어떤 프로세스가 발생하는지에 대해 더 잘 이해하지 못합니다. 어쨌든 어떤 방법을 사용할지는 귀하에게 달려 있습니다.

    초음파 거리측정기를 좋은 가격에 구매하실 수 있습니다

    거리 측정기물체까지의 거리를 측정하는 장치이다. 거리 측정기는 로봇을 돕습니다. 다양한 상황. 간단한 바퀴 달린 로봇은 이 장치를 사용하여 장애물을 감지할 수 있습니다. 비행 드론은 거리 측정기를 사용하여 미리 정해진 고도에서 지상 위를 호버링합니다. 거리 측정기를 사용하면 특별한 SLAM 알고리즘을 사용하여 방의 지도를 만들 수도 있습니다.

    1. 작동 원리

    이번에는 가장 널리 사용되는 센서 중 하나인 초음파(미국) 거리 측정기의 작동을 분석하겠습니다. 많이있다 다른 수정유사한 장치이지만 모두 반사음의 이동 시간을 측정하는 원리로 작동합니다. 즉, 센서는 특정 방향으로 소리 신호를 보낸 후 반사된 에코를 포착하여 센서에서 장애물까지 그리고 돌아오는 소리의 비행 시간을 계산합니다. 학교 물리학 과정에서 우리는 특정 매질에서 소리의 속도는 일정하지만 매질의 밀도에 따라 달라진다는 것을 알고 있습니다. 공기 중의 소리 속도와 목표물까지의 소리 비행 시간을 알면 다음 공식을 사용하여 소리가 이동한 거리를 계산할 수 있습니다. s = v*t여기서 v는 소리의 속도(m/s)이고 t는 시간(초)입니다. 그런데 공기 중에서 소리의 속도는 340.29m/s입니다. 해당 작업에 대처하기 위해 거리계에는 두 가지 중요한 요소가 있습니다. 디자인 특징. 첫째, 소리가 장애물로부터 잘 반사될 수 있도록 센서는 40kHz 주파수의 초음파를 방출합니다. 이를 위해 센서에는 고주파 사운드를 생성할 수 있는 압전세라믹 이미터가 있습니다. 둘째, 이미 터는 사운드가 모든 방향 (기존 스피커의 경우처럼)으로 퍼지지 않고 좁은 방향으로 퍼지도록 설계되었습니다. 그림은 일반적인 초음파 거리 측정기의 방사 패턴을 보여줍니다. 다이어그램에서 볼 수 있듯이 가장 간단한 초음파 거리 측정기의 시야각은 약 50-60도입니다. 센서가 앞에 있는 장애물을 감지하는 일반적인 사용 사례의 경우 이 시야각이 매우 적합합니다. 초음파는 의자 다리까지 감지할 수 있지만, 예를 들어 레이저 거리 측정기는 이를 감지하지 못할 수도 있습니다. 거리계를 레이더처럼 원으로 회전시켜 주변 공간을 스캔하기로 결정하면 초음파 거리계는 매우 부정확하고 시끄러운 사진을 제공합니다. 이러한 목적으로 레이저 거리 측정기를 사용하는 것이 좋습니다. 초음파 거리계의 두 가지 심각한 단점도 주목할 가치가 있습니다. 첫 번째는 다공성 구조의 표면이 초음파를 잘 흡수하므로 센서가 표면까지의 거리를 측정할 수 없다는 것입니다. 예를 들어, 멀티콥터에서 들판 표면까지의 거리를 측정하기로 결정했다면 키 큰 잔디, 그러면 우리는 매우 모호한 데이터를 얻게 될 것입니다. 발포 고무로 덮인 벽까지의 거리를 측정할 때도 동일한 문제가 발생합니다. 두 번째 단점은 음파의 속도와 관련이 있습니다. 이 속도는 측정 프로세스를 더 자주 수행할 만큼 빠르지 않습니다. 로봇 앞 4m 거리에 장애물이 있다고 가정해 보겠습니다. 소리가 앞뒤로 이동하는 데 최대 24ms가 걸립니다. 비행 로봇에 초음파 거리 측정기를 설치하기 전에 7번 측정해야 합니다.

    2. 초음파 거리계 HC-SR04

    이 튜토리얼에서는 HC-SR04 센서와 Arduino Uno 컨트롤러를 사용하여 작업합니다. 이 인기 있는 거리 측정기는 1~2cm에서 4~6m까지의 거리를 측정할 수 있습니다. 동시에 측정 정확도는 0.5~1cm입니다. 다른 버전동일한 HC-SR04. 일부는 더 잘 작동하고 다른 일부는 더 나쁩니다. 보드의 패턴으로 구별할 수 있습니다. 후면. 잘 작동하는 버전은 다음과 같습니다.

    실패할 수 있는 버전은 다음과 같습니다.

    3. 연결 HC-SR04

    HC-SR04 센서에는 4개의 출력이 있습니다. 접지(Gnd)와 전원(Vcc) 외에 Trig와 Echo도 있습니다. 이 두 핀은 모두 디지털이므로 Arduino Uno의 모든 핀에 연결합니다.
    HC-SR04 접지 VCC 삼각 에코
    아두이노 우노 접지 +5V 3 2
    장치의 개략도 레이아웃 모양

    4. 프로그램

    따라서 센서가 프로빙 초음파 펄스를 전송하도록 명령한 다음 그 반환을 기록해 보겠습니다. HC-SR04의 타이밍 다이어그램이 어떻게 보이는지 살펴보겠습니다.
    다이어그램은 측정을 시작하려면 출력에서 ​​생성해야 함을 보여줍니다. 삼각길이가 10μs인 양의 펄스. 이후 센서는 일련의 8개 펄스를 방출하고 출력 레벨을 높입니다. 에코, 반사된 신호를 기다리는 모드로 전환됩니다. 거리 측정기가 소리가 돌아왔다는 것을 감지하면 포지티브 펄스가 완료됩니다. 에코. 측정을 시작하려면 Trig에서 펄스를 생성하고 Echo에서 펄스 길이를 측정하면 간단한 공식을 사용하여 거리를 계산할 수 있습니다. 해보자. int echoPin = 2; int trigPin = 3; void setup() ( Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); ) void loop() ( int 지속 시간, cm; digitalWrite(trigPin, LOW); 지연마이크로초(2); digitalWrite (trigPin, HIGH); DelayMicroseconds(10); 지속 시간 = pulseIn(echoPin, HIGH); cm = 지속 시간.print(cm); 펄스인 echoPin 레그의 포지티브 펄스 길이를 마이크로초 단위로 측정합니다. 프로그램에서는 지속 시간 변수에 소리의 비행 시간을 기록합니다. 앞서 알아냈듯이 시간에 소리의 속도를 곱해야 합니다. s = 지속 시간 * v = 지속 시간 * 340m/s소리의 속도를 m/s에서 cm/μs로 변환: s = 지속 시간 * 0.034m/μs편의상 변형해보겠습니다. 소수보통으로: s = 기간 * 1/29 = 기간 / 29이제 소리가 두 가지 필수 거리, 즉 목표물과 뒤로 이동했다는 것을 기억해 봅시다. 모든 것을 2로 나누자: s = 기간 / 58이제 우리는 프로그램의 58번이 어디서 왔는지 압니다! Arduino Uno에 프로그램을 로드하고 직렬 포트 모니터를 엽니다. 이제 센서를 가리켜 보겠습니다. 다양한 아이템모니터에서 계산된 거리를 확인하세요.

    작업

    이제 거리계를 사용하여 거리를 계산할 수 있으므로 몇 가지 유용한 장치를 만들어 보겠습니다.
    1. 건설 거리 측정기. 프로그램은 거리계를 사용하여 100ms마다 거리를 측정하고 그 결과를 기호 LCD 디스플레이에 표시합니다. 편의상 장치를 작은 케이스에 넣고 배터리로 전원을 공급할 수 있습니다.
    2. 초음파 지팡이. 측정된 거리에 따라 서로 다른 주파수로 부저를 울리는 프로그램을 작성해 보겠습니다. 예를 들어, 장애물과의 거리가 3미터 이상인 경우 0.5초에 한 번씩 부저가 울립니다. 1m 거리에서 - 100ms마다 한 번씩. 10cm 미만 - 계속해서 경고음이 울립니다.

    결론

    초음파 거리 측정기는 수천 대의 로봇에서 해당 기능을 잘 수행한 사용하기 쉽고 저렴하며 정확한 센서입니다. 수업에서 배웠듯이 센서에는 로봇을 만들 때 고려해야 할 단점이 있습니다. 좋은 결정레이저 거리 측정기와 쌍을 이루는 초음파 거리 측정기를 공동으로 사용할 수도 있습니다. 이 경우 서로의 단점을 보완하게 됩니다.

    사이트의 새로운 내용

    >

    가장 인기 많은