Articles

사용하는 방법 HC-SR04 초음파 거리 센서 Arduino

HC-SR04 는 저렴한 사용하기 쉬운 초음파 거리 센서의 범위,2 400cm. 그것은 로봇 및 자동화 프로젝트를 피하는 장애물에서 통용됩니다. 이 튜토리얼에서는 센서의 작동 방식과 Arduino 와 함께 사용하는 방법을 배우게됩니다.

배선 다이어그램 및 코드와 함께 5 가지 예제를 포함 시켰으므로 센서 실험을 시작할 수 있습니다., 먼저 Arduino 라이브러리를 사용하지 않는 예제를 살펴 보겠습니다. 다음으로 뉴핑 라이브러리를 사용하여보다 컴팩트 한 코드를 만드는 방법을 보여 드리겠습니다.

저렴한 초음파 거리/근접 센서는 좋지만 일부 프로젝트에서는,필요할 수 있는 방수 감지기와 같은 JSN-SR04T 또는 IR 센서에 의해 좌우되지 않는 온도 변경합니다.,on

20×4 character I2C LCD (optional) × 1 Amazon
AliExpress DHT11 sensor (optional) × 1 Amazon

Software

Arduino IDE

Makerguides.,com 은 참가자에게 아마존 서비스 Associates LLC,프로그램을 제휴 광고 프로그램을 제공하도록 설계되었는 수단을 위해 사이트를 적립하는 광고 비용으로 광고와 연결하는 제품에서 Amazon.com.

는 어떻게 초음파 거리 센서 작동합니까?

초음파 센서는 사람이 듣기에는 너무 높은 주파수로 음파를 방출하여 작동합니다. 이 음파는 대략 343m/s 의 소리의 속도로 공기를 통해 이동합니다., 센서 앞에 물체가 있으면 음파가 다시 반사되고 초음파 센서의 수신기가이를 감지합니다. 을 측정하여 사이에 얼마의 시간이 지났는지를 보내고 받는 사운드 파리 사이의 거리 센서 및 개체을 계산할 수 있습니다.

초음파 거리 센서의 작동 원리입니다. Source:https://www.maxbotix.com/

20°C,소리의 속도는 대략 343m/s 또는 0.034cm/µs., 음파를 보내고받는 사이의 시간이 2000 마이크로 초라고 가정 해 봅시다. 음파가 여행 한 시간에 소리의 속도를 곱하면 음파가 여행 한 거리를 얻습니다.

거리=속도 x 시간

그러나 그것은 우리가 찾고있는 결과가 아닙니다. 사이의 거리 센서와 개체가 실제로만 절반이의 거리 때문에 소리 파에서 여행 센서를 개체 및 허 객체에서 센서가 있습니다. 그래서 결과를 2 로 나눌 필요가 있습니다.,

리(cm)=속도의 소리(cm/µs)×시간(µs)/2

고 그래서 예를 들어 이 된다:

리(cm)=0.0343(cm/µs)×2000(µs) /2=34.3cm

온도 의존성의 소리의 속도

의 속도로 사운드에 실제로 강하게 의존에서도 훨씬 낮은 수준에서 습도의 공기에 있습니다. Wikipedia 는 소리의 속도가 섭씨 1 도당 약 0.6m/s 로 증가한다고 말합니다., 대부분의 경우에는 20°C 에서 사용할 수 있습니다 343m/s 하지만 당신이 원하는 경우를 얻을 더 정확한 판독값을 계산할 수 있습니다 소리의 속도와 수식은 다음과 같습니다.

V(m/s)=331.3+(0.606×T)

V=음속(m/s)
T=기 온도(°C)

이 수식에 포함되지 않 습도 이후 그 효과 소리의 속도에 매우 작습니다.

아래을 찾을 수 있습 튜토리얼에서 사용하는 방법 DHT11 온도 및 습도 센서 보정 소리의 속도를 더 정확하게 거리를 읽으로 HC-SR04.,

는 방법 HC-SR04 작품

정면에서의 HC-SR04 센서,당신을 찾을 수 있습니다 두 개의 실버 실린더(초음파 트랜스 듀서),하나의 송신기의 소리는 파도와 다른 수신기가 있습니다. 센서가 소닉 버스트를 생성하게하려면 최소 10μs 동안 삼각 핀을 높게 설정해야합니다. 그런 다음 센서는 40kHz 에서 초음파의 8 사이클 버스트를 생성합니다.

이 소닉 버스트는 소리의 속도로 이동하고 다시 반사되어 센서의 수신기에 의해 수신됩니다. 그런 다음 에코 핀은 음파가 마이크로 초 단위로 이동 한 시간을 출력합니다.,

Arduino 코드에서pulseIn()함수를 사용하여 에코 핀에서 펄스의 길이를 읽을 수 있습니다. 그 후에 위에서 언급 한 수식을 사용하여 센서와 물체 사이의 거리를 계산할 수 있습니다.,환

40kHz 측정 범위 2–400cm 해상도 3mm 각도 측정 15 도 트리거 입력 신호 10µs 높은 펄스 비용 체크인 가격

자세한 내용을 확인할 수 있습니다 데이터 시트는 아래:

배선 연결 HC-SR04 을 Arduino UNO

배선 아래 그림 표시를 연결하는 방법 HC-SR04 센서를 Arduino.,

HC-SR04 아 배선 다이어그램

이 코드는 아래의 예를 사용 디지털 방식으로 pin2 및 3 에 대해 트리거하고 echo 핀을 각각하지만,의 과정을 변경할 수 있습니다 이 모든 디지털 방식으로 핀을 원합니다.,C-SR04 Connections

HC-SR04 Arduino
VCC 5 V
Trig Pin 2
Echo Pin 3
GND GND

Example code for HC-SR04 with Arduino

Now that you have wired up the sensor it is time to connect the Arduino to the computer and upload some code., Arduino IDE 를 사용하여 다음 예제 코드를 Arduino 에 업로드 할 수 있습니다. 다음으로 코드가 어떻게 작동하는지 설명하겠습니다.

코드 작동 방식

첫 번째,트리거 핀 echo 핀 정의됩니다. 나는 그것들을trigPinEchoPin라고 부른다. 트리거 핀은 디지털 핀 2 에 연결되고 에코 핀은 Arduino 의 디지털 핀 3 에 연결됩니다.

명령문#define는 상수 값에 이름을 지정하는 데 사용됩니다., 컴파일러는 프로그램이 컴파일 될 때이 상수에 대한 참조를 정의 된 값으로 대체합니다. 따라서trigPin를 언급하는 모든 곳에서 컴파일러는 프로그램이 컴파일 될 때 값 2 로 대체합니다.

// Define Trig and Echo pin:#define trigPin 2#define echoPin 3

다음에 정의는 두 변수:durationdistance. 지속 시간은 음파를 송수신하는 사이의 시간을 저장합니다. 거리 변수는 계산 된 거리를 저장하는 데 사용됩니다.,

// Define variables:long duration;int distance;

setup()을 시작으로 설정하여 trigPin 로 출력하고 echoPin 로 입력합니다. 다음으로 9600 의 전송 속도로 직렬 통신을 초기화합니다. 나중에 ctrl+Shift+M 또는 Tools>직렬 모니터로 액세스 할 수있는 직렬 모니터에 측정 된 거리를 표시합니다. 전송 속도도 직렬 모니터에서 9600 으로 설정되어 있는지 확인하십시오.

loop()에서 10μs 에 대해 trigPin 을 높게 설정하여 센서를 트리거합니다., 깨끗한 신호를 얻으려면 5 마이크로 초 동안 낮게 설정하여 trigPin 을 지우는 것으로 시작합니다.

다음으로 echoPin 이 보낸 펄스의 길이를 읽어야합니다. 이를 위해pulseIn()함수를 사용합니다. 이 기능을 때까지 대기 핀을 가 높은 낮은에서 시작 타이밍,그 때까지 대기 핀을 가는 저렴한 및 정지한다.

그 후,이 튜토리얼의 소개에서 언급 한 공식을 사용하여 거리를 계산할 수 있습니다.

마지막으로 계산 된 거리가 직렬 모니터에 인쇄됩니다.,

예제 코드 HC-SR04 아두이노와 NewPing 도서관

NewPing 라이브러리에 의해 작성된 팀 Eckel 사용할 수 있습으로 많은 초음파 거리 센서입니다. 최신 버전의 이 라이브러리는 여기에서 다운로드 할 수 있습니다 on bitbucket.org. 지고 있음을 알 수 있습니다 아래 코드를 사용하는 NewPing 라이브러리는 많은 보다 짧은 코드를 우리가 사용하기 전에. 그 외에도 NewPing 라이브러리에는 다른 멋진 기능이 포함되어 있습니다. 그것을 설정할 수 있는 최대 거리를 읽지 않습니다,지연에 대한 전체 두 번째 없는 경우 반향을 받으며,그것은 내장 평균 필터입니다.,

Sketch>Include Library>Add 로 이동하여 라이브러리를 설치할 수 있습니다.Arduino IDE 의 ZIP 라이브러리.라이브러리에는 사용할 수있는 몇 가지 예제가 포함되어 있지만 하드웨어 설정과 일치하도록 수정해야합니다. 이전과 동일한 배선 설정으로 사용할 수있는 수정 된 예제 코드를 아래에 포함 시켰습니다.

사용할 수도 있습니다distance = sonar.ping_cm()또는distance = sonar.ping_in()반환하는 측정된 거리에 센티미터 전체 또는 인치입니다., 이 기능을 사용하면 지속 시간 측정을하고 거리를 계산할 필요가 없습니다.

3 핀 모드에서 초음파 센서 인터페이싱

NewPing 라이브러리는 또한 1 개의 I/O 핀만 사용하면서 초음파 센서와 쉽게 인터페이스 할 수 있습니다. 이 편리할 수 있는 경우 당신은 매우 몇 가지는 I/O 핀 수 있거나 사용하려는 경우 3 핀 초음파 센서 같은 시차습니다.

3 핀 설정(GND,5V 및 SIG)을 만들려면 트리거 핀과 에코 핀을 모두 Arduino 의 동일한 디지털 핀에 연결해야합니다., 코드에서 변경해야 할 유일한 것은 6-7 행이며 삼각 핀과 에코 핀 모두에 대해 동일한 핀을 정의합니다. 예를 들어 디지털 핀 2.

//Define Trig and Echo pin#define trigPin 2#define echoPin 2

사용하는 방법 ping_median()디지털 방식으로 필터

주요 주제는 다음과 같 대 NewPing 라이브러리는 그것이 내장 평균 필터입니다. 이 여과기는 매우 당신의 HC-SR04 독서의 정확도를 개량할 수 있습니다. ping_median()함수는 많은 시간을 측정,행에 던져 멀리 밖의 범위를 판독한 다음의 평균 나머지 것들입니다., 기본적으로 5 판독 값을 취할 것입니다하지만 당신은 그것을 취해야 얼마나 많은 지정할 수 있습니다. 라인 19 를 아래 라인으로 바꿉니다.

int iterations = 5;duration = sonar.ping_median(iterations);

예제 코드 HC-SR04I2C LCD 고 아두이노

를 표시하는 측정된 거리에는 2004 년 1602I2C LCD,당신이해야 할 모든 것을 다음과 같이 연결로 업로드됩니다. HC-SR04 센서는 이전과 같은 방식으로 연결됩니다.

Arduino 와 I2C LCD 배선도를 가진 HC-SR04.,

I2C LCD Connections

I2C LCD Arduino
GND GND
VCC 5 V
SDA A4
SCL A5

If you are not using an Arduino Uno, the SDA and SCL pins can be at a different location., R3 레이아웃(1.0 핀아웃)이있는 Arduino UNO 에는 AREF 핀에 가까운 SDA(데이터 라인)및 SCL(클록 라인)핀 헤더도 있습니다. 자세한 내용은 아래 표를 확인하십시오.,f43445″>

Arduino Uno A4 A5 Arduino Nano A4 A5 Arduino Micro 2 3 Arduino Mega 2560 20 21 Arduino Leonardo 2 3 Arduino Due 20 21
I2C pin locations for different Arduino boards

The code uses the LiquidCrystal_I2C library, which you can download here on GitHub., 이 정확한 라이브러리가 설치되어 있는지 확인하십시오! 그것은 또한 철사를 포함합니다.i2c 장치와 통신 할 수있는 h 라이브러리. 이 라이브러리는 Arduino IDE 와 함께 사전 설치되어 있어야합니다.

Arduino 로 I2C LCD 를 제어하는 방법에 대해 자세히 알고 싶다면 여기에서 전체 자습서를 확인할 수 있습니다.

  • Arduino 로 문자 I2C LCD 를 제어하는 방법

20x4LCD 디스플레이를 사용했음을 유의하십시오. 다른 크기의 LCD(16×2 도 일반적 임)가있는 경우 20 행을LiquidCrystal_I2C lcd(0x27,16,2);로 변경해야합니다., LCD 에 기본 I2C 주소 인 0x27 이없는 경우 주소가 무엇인지 찾을 수있는 방법을 설명하는 전체 I2C 자습서를 확인하십시오.

예제 코드 HC-SR04 와 DHT11 온도 센서 및 Arduino

으로 앞서 언급한 소리의 속도에 크게 의존합기 온도입니다. 측정 할 경우 긴 거리에(3-4m)할 수 있는 좋은 아이디어를 추가하 DHT11 또는 DHT22 온도 및 습도 센서의 설정입니다. 이렇게하면 소리의 속도를 실시간으로 보정 할 수 있으므로 측정의 정확도가 높아집니다.,DHT11 센서를 추가하는 것은 정말 간단합니다. 아래의 배선도는 어떤 연결을해야하는지 보여줍니다. 브레이크 아웃 보드와 함께 DHT11 을 사용하고 있으므로 3 핀만 배선하면됩니다. 센서의 라벨을 반드시 확인하십시오,핀의 순서는 제조업체에 따라 다를 수 있습니다. HC-SR04 센서는 이전과 같은 방식으로 연결됩니다.

Arduino 와 DHT11 배선도를 가진 HC-SR04.,

DHT11 Connections

DHT11 Arduino
VCC (+) 5 V
Signal (s) Pin 4
GND (-) GND

The code below uses the Adafruit DHT Humidity & Temperature Sensor library which you can download here on GitHub., 이 라이브러리는 Github 에서도 사용할 수있는 Adafruit_Sensor 라이브러리가 설치된 경우에만 작동합니다. 다운로드할 수도 있습니다 두 개의 라이브러리 버튼을 클릭하여 아래

할 수 있는 버튼을 클릭하면 오른쪽 상단 코드 필드를 코드를 복사합니다.

Dht11 및 I2C LCD 가있는 예제 코드 HC-SR04

Arduino,DHT11 및 I2C LCD 배선도가있는 HC-SR04.

아래 코드는 위의 3 가지 예를 모두 결합하는 데 사용할 수 있습니다., 그것은 LCD 에 온도,소리의 속도 및 측정 된 거리를 모두 표시합니다.

HC-SR04 치수

아래에서 hc-SR04 초음파 센서의 치수를 찾을 수 있습니다. 제조업체간에 약간의 차이가 있음을 알았으므로 자체 센서에 대해 두 번 확인하는 것이 좋습니다.

HC-SR04 차원

HC-SR04CAD

제가 만든 기본 CAD 도면의 HC-SR04 초음파 센서는 아래에서 다운로드 할 수 있습니다.,

결론

이 문서에서 나가는 방법을 보 HC-SR04 초음파 거리 센서의 작동하고 사용할 수 있는 방법으로 아두이노. 나는 당신이 유용하고 유익한 발견 바랍니다. 그랬다면,전자 제품도 좋아하는 친구와 공유하십시오!

개인 프로젝트:몇 달 전에 나는 몇몇 친구들과 대화 형 벽 설치를 만들었습니다. 우리는 벽 앞에서 걷는 사람들을 감지하기 위해 약 30 개의 초음파 거리 센서를 사용했습니다. 벽에는 사람들이 얼마나 멀리 서 있었는지에 따라 변경된 조명과 음향 효과가 포함되었습니다.,

Photo:히딩크 감독 Schoonewille

사랑하는 것이 무엇인 프로젝트 계획에서관(또는 이미 구축)에 HC-SR04 거리 센서입니다. 질문,제안 사항이 있거나이 튜토리얼에서 누락 된 것이 있다고 생각되면 아래에 의견을 남겨주세요.피>