このプロジェクトでは、HC-SR04超音波センサーを紹介します。 それは送信機から音波を送ることによって働き、それから目的の跳ね上がり、次に受信機に戻ります。 音波がセンサーに戻るまでにかかる時間までに、何かがどれだけ遠くにあるかを判断できます。 のは、それに権利を取得してみましょう!,
接続
接続は非常に簡単です:
- VCCから5V
- GNDからGND
- Trigからピン9
- Echoからピン10
実際にTrigとEchoをどちらのピンにも接続できますが、9と10は私が使っているものです。p>
divまず、trigとechoが接続されているピンを定義します。,
const int trigPin = 9; const int echoPin = 10;
次に、音波の長さとオブジェクトの距離を保持する2つの浮動小数点数、durationとdistanceを宣言します。
float duration, distance;
次に、セットアップでTrigピンを出力として、Echoピンを入力として宣言し、シリアル通信を開始します。
void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); }
さて、ループでは、最初にtrigPinを2マイクロ秒間ローに設定して、ピンが最初にローになることを確認します。, 次に、10マイクロ秒間ハイに設定し、送信機から8サイクルのソニックバーストを送信し、オブジェクトをバウンスして受信機(エコーピンに接続されている)に当たります。
音波が受信機に当たったとき、波がのために移動していたどんなに長くの間エコーピンを高く回します。 それを得るために、pulseIn()という便利なArduino関数を使うことができます。 これは、2つの引数、あなたが聞いているピン(ここではEchoピン)、および状態(HIGHまたはLOW)を取ります。, この関数が行うことは、ピンがどちらの状態になるのを待ち、タイミングを開始し、他の状態に切り替わるとタイミングを停止することです。 にしだからこそ実現できる高てい開始のタイミング時のエコー highになります。 時間をduration変数に格納します。 (マイクロ秒単位で時間を返します)
duration = pulseIn(echoPin, HIGH);
時間があったので、speed=distance/timeという式を使用できますが、速度があるのでtime x speed=distanceにします。 どんなスピードがある? もちろん音の速さ、!, 音速は約340メートル/秒ですが、pulseIn()関数は時間をマイクロ秒単位で返すため、マイクロ秒単位の速度も必要になります。 “マイクロ秒あたりのセンチメートルの音の速度”のための迅速なGoogle検索は、それがあると言うでしょう。0343c/μs. あなたは数学を行うことができますが、検索する方が簡単です。 とにかく、その情報で、私たちは距離を計算することができます! 期間を掛けるだけです。0343そして、それを2で割ります(音波が物体に移動して戻ってくるため)。 それをdistance変数に格納します。,
distance = (duration*.0343)/2;
残りは結果をシリアルモニターに出力するだけです。
Serial.print("Distance: "); Serial.println(distance); delay(100); }
カバーイメージ:Sparkfun
© 2021 Tombouctou
Theme by Anders Noren — Up ↑
コメントを残す