ウルトラソニックセンサー HC-SR04 と Arduino の完全ガイド

超音波センサー/ウルトラソニックセンサー HC-SR04の機能と使用方法

ウルトラソニックセンサーHC-SR04とArduino を使って電子工作をしましょう。

概要:

HC-SR04 ウルトラソニックセンサーは、コウモリの様に超音波を使って物体との距離を測定するソナーの様に使用できます。

この商品は簡単に使用が出来き、非接触で精度の高い値を安定した作動とともに提供します。

測定できる距離は、2cmから400cm です。

このセンサーは、日光の光や被測定物体の形状や色などにも測定値が影響を受ける事はありません。

しかし、柔らかい布など音を吸収する材質の場合は正しい測定値を検知する事が困難になります。

機能:

使用電圧: DC +5V

待機電流: 2mA 以下

作動電流: 15mA

有効角度: 15°以下

測定距離: 2cm - 400cm / 1” - 13ft

精度:  0.3cm

測定角度: 30°

トリガー入力信号幅: 10us

サイズ: 45mm X 20mm X 15mm

どうして動くか

ウルトラソニックセンサーはソナー(音波)を使って被測定物体までの距離を測定します。

1.出力サイドから高周波音波を送ります。

2.物体がこの出力された高周波音波をさいぎると、その反響したエコーが受信側が受け取ります。

この信号の送信と受信の間の時間からセンサーと被測定物体までの距離を知る事が可能です。

これは、音が空気中を進むスピードが分かっているからです。

—————————————————————————-

PINの説明:

1. VCC: DC+5V

2. トリガー: トリガー入力

3. エコー: エコー出力

4. アース

HC-SR04 ウルトラソニックセンサーと Arduibo を一緒に使うと簡単で少ない線での結線で使用する事が出来ます。

このセンサーを使ったプロジェクトのサンプル例スケッチを見つける事が出来ます。

Ultrasonic Sensor HC-SR04 Arduino ATmega328P
VCC 5V
Trig Pin 11 17ピン
Echo Pin 12 18ピン
GND GND

スケッチ例 1:

int trigPin = 11;    // Trigger
int echoPin = 12;    // Echo
long duration, cm, inches;
 
void setup() {
  //Serial Port begin
  Serial.begin (9600);
  //Define inputs and outputs
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
void loop() {
  // The sensor is triggered by a HIGH pulse of 10 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  // Read the signal from the sensor: a HIGH pulse whose
  // duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
 
  // Convert the time into a distance
  cm = (duration/2) / 29.1;     // Divide by 29.1 or multiply by 0.0343
  inches = (duration/2) / 74;   // Divide by 74 or multiply by 0.0135
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(250);
}

スケッチ例 2:

#include <NewPing.h>
 
#define TRIGGER_PIN 11
#define ECHO_PIN 12
#define MAX_DISTANCE 200

// NewPing setup of pins and maximum distance
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
 
void setup() {
   Serial.begin(9600);
}
 
void loop() {
   delay(50);
   unsigned int distance = sonar.ping_cm();
   Serial.print(distance);
   Serial.println("cm");
}

スポンサーリンク