Ultrasonic Sensor(HC-SR04) JP

このセンサーは超音波を利用して距離を測定します。
使用環境によって測定範囲に誤差が生じることがあります。
[超音波発信 -> 反射 -> 受信]の順で距離を測定します。
センサーの動作原理
1. trigピンで超音波を発信します。
2. 発信直後、echoピンをHIGHに保持します。
3. 超音波が反射して戻ってきたらechoピンをLOWにします。
4. pulseIn(echoPin, HIGH)を使用して往復時間を取得します。
5. 式に代入して距離を計算します。
距離測定
| 超音波の速度 | 340m/s |
| 往復時間 | x |
| 物体までの距離 | y |
仕様
- 動作電圧:5V
- 動作電流:15mA
- 動作周波数:40Hz
- 超音波周波数:40kHz
- 最大検出距離:4m
- 最小検出距離:2cm
- 測定角度:15度
- トリガー入力:10µs TTLパルス
必要なハードウェア
- 超音波センサー(HC-SR04)
- Arduinoボード
- ジャンパーワイヤー
接続
TrigとEchoピンは任意のピン番号に設定できます(本例ではD3とD4を使用)。

| HC-SR04 | Arduino UNO |
| GND | GND |
| VCC | 5V |
| Trig | D3(変更可能) |
| Echo | D4(変更可能) |
サンプルコード
シリアルモニターで距離を確認する例です。
#define trigPin 3
#define echoPin 4
double pulseTime; // 超音波の往復時間を格納する変数
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
delay(2000);
Serial.println("接続成功");
delay(500);
digitalWrite(trigPin, LOW);
}
void loop()
{
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pulseTime = pulseIn(echoPin, HIGH);
double distance_cm = pulseTime * 17 / 1000;
double distance_m = distance_cm / 100;
if ((distance_cm < 400) && (distance_cm > 2))
{
Serial.print("距離(cm) = ");
Serial.println(distance_cm);
Serial.print("距離(m) = ");
Serial.println(distance_m);
Serial.println("--------------------------------------------------");
}
else
{
Serial.println("センサーの範囲を超えました");
}
delay(1000);
}