Lesson10 超音波センサー
超音波センサーは、距離測定が必要なシーンで利用されます。例えば障害物を避けるセンサーとして使うことができます。HC-SR04 は安価で使いやすく、Arduinoでは、このセンサ用に特別に設計されたライブラリがあります。
必要な部品
必要な部品は以下になります。
- Elegoo UNO R3 x 1
- Ultrasonic sensor module (HC-SR04) x 1
- F-M Jumper Wire x 4
超音波センサー(Ultrasonic Sensor)
超音波センサモジュール HC-SR04 は 2cm〜400cm の非接触測定機能を有します。測距精度は 3mm です。 モジュールには、超音波送信機、受信機および制御回路が含まれます。
基本構造は以下の通りです。
(1) IO トリガを 10us 以上のハイレベル信号に使用すると、
(2) モジュールは 40 kHz を自動的に 8 回送信し、パルス信号が戻ってきたかどうかを検出します。
(3) 信号が戻ってくると、ハイレベル信号を通して、超音波を送信してから戻るまでの時間を測定して距離に変換し返します。
計測距離=(高レベル時間×音速(340m / s)/ 2
超音波センサーに 10us パルスを供給すれば、モジュールが 40KHz で 8サイクルの超音波を送受信します。ただし、1サイクルは60ms以上の間隔を開けることが推奨です。理由は、戻ってくる超音波と送信する超音波が重複して誤測定を防ぐためです。
回路を作ってみる
それでは実際に回路を繋いでみます。
GNDとHC-SR04のGrd(黒ワイヤー)、5VとHC-SR04のVcc(赤ワイヤー)、D12アウトプットとHC-SR04のTrig(青ワイヤー)、D11インプットとHC-SR04のEcho(緑ワイヤー)を繋ぎます。
プログラムを動かしてみる
チュートリアルに付属のコードを利用して実際に動かしてみる。
//www.elegoo.com
//2016.12.08
#include "SR04.h"
#define TRIG_PIN 12
#define ECHO_PIN 11
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
long a;
void setup() {
Serial.begin(9600);
delay(1000);
}
void loop() {
a=sr04.Distance();
Serial.print(a);
Serial.println("cm");
delay(1000);
}
ライブラリの追加が必要です。(解凍してはいけないです)
動画のように計測した結果がシリアルモニタに表示されます。
距離を近づけてみると36cm、32cm・・・4cmと計測距離が近づいています。
超音波センサを使って何か出来るようになりたいですね!
コメント