道具 Arduino: 超音波距離計 HC-SR04。 HC-SR04 超音波距離測定モジュール 超音波距離測定センサー hc sr04

Arduino: 超音波距離計 HC-SR04。 HC-SR04 超音波距離測定モジュール 超音波距離測定センサー hc sr04

こんにちは、みんな。
このミニレビューでは、超音波距離測定モジュールを使用して独自に作成します。

誠に申し訳ございませんが、梱包・開梱はございません。 私自身、他のレビューでは気に入らないので、自分のレビューを台無しにするつもりはありません。 注文した商品が異常な梱包や非常に卑劣な形態で到着しない限り...
トイレに行くと自動的に照明が点灯し、トイレを出ると自動的に消灯するというアイデアが生まれました。 これらの目的のために、pir スイッチを注文しました。また、念のため、pir センサーも別途注文しました。



スイッチは、家族全員が個別に訪れる部屋に設置されていました。
そして、トイレに行くときに典型的な手順を実行しながらレズギンカを踊ることができる人は誰もおらず、通常の姿勢でフリーズするのは誰にとっても典型的なことであることが判明しました。 ここでビャカが待ち構えていた。 良いこと、永遠のことを考えているだけで、電気がバタンと消えたり、とても迷惑です。
スイッチを調整するあらゆる方法が試みられましたが、望ましい結果は得られませんでした。
私たちは、必要な存在センサーを検出センサーに置き換えることによって、自分自身と物理学を欺くことに失敗しました。
そのため、スイッチと未使用の PIR センサーは次の場所に送られました。 長期保存庫良い時代が来て、彼らの地位が奪われるまで...
ゲートシステム用の複合レーダーですが、まだどこにも取り付けられていません。


電子レンジの電源は当然オフになっているのに、なぜ頭のてっぺんを電子レンジにさらす必要があるのでしょうか。 IR マトリックスだけが残ります。
事はかなり具体的です。 その最小ゾーンは部屋のサイズです。 訪問時にバタンと照明がついたり消えたりします。 しかし、欠点が 1 つあります。 センサーは非常に細心の注意を払っており、すべてが所定の位置に収まることを好みます。 ロール紙を動かしたり、便座を下げたり上げたりした場合は、リセットが必要です。 そして、彼の価格は異常ではありません。
そこで、解決策の模索が続きました。
インターネット上で、簡単なトピックを扱っているサイトを見つけました。 サーキットブレーカー超音波センサーに光が当たります。
このトピックは興味深いものに思えました。特にファームウェアで車輪を再発明する必要がないため、著者は私たちのために最善を尽くしてくれました。彼に感謝します。
図があり、ファームウェアがあります。 残っているのは、シグネットを作成し、出力に本格的な存在センサーを取得することだけです。 それとも理解できないのか...見てみましょう...
センサーはbanggoodで注文しました。配達時間が安定しているこのストアが気に入っています。追跡なしで28〜30日で注文できます。
トラックなしで時間通りに到着しました。 Banggood のトラックなしの小包の梱包は標準で、ゴミ袋だけです...
センサーは帯電防止素材で梱包されていたため、郵便トラブルを免れたのではないかと思います。 :0)
残念ながら帰りにゴミ袋を捨ててしまい、帯電防止剤はすでに家にあるのでセンサー以外は見せるものがなく、センサー自体もすでに製造時に擦り切れてしまっています(足はまっすぐになっています)デバイスのプロセス。
TTXセンサー:
- 45×20×23mm。 LxWxD (D - 脚を伸ばした状態)
- 重量 - 8.28グラム
- 供給電圧 - DC 5V
- 消費電流 - 15mA
- 最小作動距離 - 2 cm。
- 最大作動距離 - 4メートル
- 検出ゾーン角度 - 15 度
簡単に言うと。
センサーはエコー原理に基づいて動作します。 センサーの 1 つのピエゾが周波数 40 kHz のパルスのパケットを放射し、信号がセンサーの前の表面で反射され、反射された信号が別のピエゾで受信され、処理ユニットが受信したデータを処理してパルスを出力します。その長さは超音波信号の距離に比例します。
それらの。 出力にはインパルスがあり、その持続時間は私たちにとって重要です。
当社が製造する自動スイッチ/スイッチでは、マイクロコントローラーのメモリに保存されているパルスの持続時間と、新たに反射されたパルスの持続時間とを比較します。 新しいパルスの持続時間がメモリ内の持続時間より短い場合、マイクロコントローラーは検出ゾーン内に物体があり、ロードをオンにする必要があると判断します。パルスの長さが長い場合は、何もしません。ロードがオンになっている場合はオフにしてください。
さらに遠く:
センサーそのもの。


マイクロ回路上のマーキングは消去されています。


早速描き直しましょう 既製の図 Diptrace では、実験用に印を描いてスカーフを作ります。

製造工程はもう飽きた方も多いと思うのでネタバレで隠しました。
スカーフの作り方を一度ご紹介しました。 今回は何枚か写真を撮りましたが、捨てるのはもったいないです。
私はもうプロセスで人々を苦しめるつもりはありません。ボードについて質問がある場合は、個人メッセージを書いてください。
このトピックに関して私が収集したものと、Diptrace の図と印刷可能なスカーフをダウンロードするためのリンク。
写真を数枚。
スカーフと型紙を用意します。 フォトレジストが塗布されます。


私たちは照らし、洗い、エッチングします。


フォトレジストをエッチングして洗い流します。


マスクを適用し、テンプレートを照明します。


スカーフをカットして穴を開けます。



スカーフそのもの。
回路はATtiny13で組み立てました。
なぜテストではこんなに美しいのでしょうか? それは、el の下で別のボードと同時に行われただけです。 負荷。
なぜラジオ要素はこれほど愚かに配置されているのでしょうか? テストだから。 デバイスが組み立てられ、動作しているかどうかを確認します。 育てて組み立てても意味がありませんでした。


センサーをスカーフにはんだ付けします。


私たちはプログラムします。


その結果、30mA を消費し、5 ボルトの電源を備えた既製のパッケージ化されていないプレゼンス センサーを入手できます。 異物角度 15 度、距離 2 センチメートルから 3.5 メートルの事前にプログラムされた検出ゾーン内で。 検出するとLEDが点灯します。
動作原理は簡単です。 必要な場所にセンサーを向けます。 ボタンを押します。
設定LED(私の場合は赤)が点滅を始めます。
3 つのモードで点滅します。
10% LED 点灯 - 物体が範囲外、負荷オフ。
90% LED が点灯 - 物体が範囲内にあり、負荷がオンになっています。
50% LED が点灯 - 検出ゾーンは空いており、カウントダウンはファームウェアに応じて 60 秒または 10 秒、または 1 秒で、オフになるまでランプが点灯します。
その後、10 秒以内に検知ゾーンから離れる必要があります。
エリアを制限することができます。 これを行うには、設定を記憶する時点でゾーンの境界に立っている必要があります。これにより、ゾーンが制限されます。
パスポート最小2センチを確認します。 写真のように範囲を限定すると、ボックスとセンサーの間に指を入れるとLEDが点灯し、指を離すと消灯します。
ボックスを0.5センチメートル近づけると、LEDが点灯し、デバイスはチューニングを拒否します。


最大4メートルは確認できなかった。 最大距離これは確認されており、デバイスは3.5メートルの距離にいる人物を自信を持って記録します。 の上 3メートル自信を持って私の手を15×15センチメートルの箱に固定します。 負荷をオンにしますが、ボックスを取り外すまでオフになりません。
結論。
- 出来上がった存在センサーが気に入りました。
- 最もシンプルで便利なセットアップ。
- それは実際に動作します。
- 安くて陽気です。
一般に、これは超音波距離測定モジュール HY-SRF05 に基づく適切なデバイスです。
近い将来、場所に合わせて調整します。ボックスを選択するだけです。
ライトを消すことを恐れることなく、希望の位置でフリーズできるようになりました。
興味のある方は、さらに多くの使用方法を考えることができます。 特にこのセンサーは基本的に Arduino エンジニア向けに設計されています。 あるいは、彼らにとってはそうではないかもしれません... +41を購入する予定です お気に入りに追加 レビューが気に入りました +41 +81

入力電圧 5V 直流、センサーの Vcc ピンと GND ピンに供給されます。

センサーの詳細:

TRIG センサーの入力に 10 μs の持続時間で正のパルスを印加すると、センサーは音波 (周波数 40 kHz の 8 パルス - 超音波) を送信し、論理レベル「1」を設定します。エコー出力。 音波は障害物から反射されてセンサー受信機に戻り、その後 ECHO 出力のレベルが論理「0」にリセットされます (音波が 38 ミリ秒以内に戻らない場合、センサーは同じことを行います)。 ) 結果として、ECHO 出力に論理「1」が存在する時間はウルトラトランジットタイムと等しくなります。 音波センサーから障害物まで、そしてまた戻ってくるまで。 空気中の音波の伝播速度と ECHO ピンに論理「1」が存在する時間を知ることで、障害物までの距離を計算できます。


距離速度に時間をかけることで計算されます(この場合、音波の伝播速度) V、エコーを待っている間 エコー)。 しかし、音波はセンサーから物体までの距離を伝わり、また戻ってくるので、必要なのは物体に到達することだけなので、結果を 2 で割ります。

L = V * エコー / 2

  • L– 距離 (m);
  • V– 空気中の音速 (m/s);
  • エコー– エコー待機時間 (秒)。

空気中の音速、光の速度とは異なり、値は一定ではなく、温度に大きく依存します。

V 2 = γ R T / M

  • V– 空気中の音速 (m/s)
  • γ – 空気断熱指数 (単位) = 7/5
  • R– ユニバーサル気体定数 (J/mol*K) = 8,3144598(48)
  • T ° に) = t℃ + 273.15
  • M– 空気の分子量 (g/mol) = 28,98

既知の値を式に代入する γ , R, M、 我々が得る:

V ≈ 20.042 √T

あとは計算式を組み合わせるだけ Vそして L、そして翻訳します Lメートルからセンチメートルまで、 エコー sからμsまで、 T°K から °C にすると、次のようになります。

L ≈ エコー √(t+273.15) / 1000

  • L– 距離 (cm)
  • エコー– エコー待ち時間 (μs)
  • t– 気温 (°C)

iarduino_HC_SR04 と iarduino_HC_SR04_int 、両方のライブラリの構文は同じです。 すべての値を自ら計算し、距離のみを cm 単位で返します。デフォルトの温度は 23°C に設定されていますが、指定することもできます。 ライブラリとその機能の操作については以下で説明します。

センサーを操作するために、iarduino_HC_SR04 と iarduino_HC_SR04_int という 2 つのライブラリを開発しました。両方のライブラリの構文は同じです。

  • iarduino_HC_SR04 ライブラリの利点は、センサーを任意の Arduino ピンに接続できることですが、欠点は、ライブラリがセンサーからの応答を待機し、その応答が最大 38 ミリ秒続く可能性があることです。
  • iarduino_HC_SR04_int ライブラリの利点は、センサーからの応答を待たない (スケッチの実行を一時停止しない) ことですが、センサーの ECHO ピンは、外部割り込みを使用する Arduino ピンにのみ接続する必要があることです。

ライブラリのインストールについて詳しくは、こちらをご覧ください。

例:

iarduino_HC_SR04 ライブラリを使用して距離を決定します。

#含む // ライブラリ iarduino_HC_SR04 sensor(2,3) を接続します。 // センサーの TRIG ピンと ECHO ピンに接続されている Arduino 番号を示すセンサー オブジェクトを宣言します // 任意の Arduino ピンを使用できます void setup())( Serial.begin(9600); // シリアルへのデータ転送を初期化しますport Monitor ) void loop())( late(500); // 遅延 0.5 秒 Serial.println(sensor. distance()); // 気温、約 +23 °C での出力距離 (cm) Serial.println( sensor. distance(-20) ); // 気温、約 -20 °C での出力距離 (cm) Serial.println("===================) ;

iarduino_HC_SR04_int ライブラリを使用して距離を決定します。

#含む // ライブラリ iarduino_HC_SR04_int sensor(2,3) を接続します。 // センサーの TRIG ピンと ECHO ピンに接続されている Arduino 番号を示すセンサー オブジェクトを宣言します // (ECHO ピンは外部割り込みを使用して Arduino ピンに接続する必要があります) void setup())( Serial.begin(9600 ); // シリアル モニタ ポートへのデータ転送の初期化 ) void loop())( late(500); // 遅延 0.5 秒 Serial.println(sensor. distance()); // 気温での出力距離 (cm) 、約 +23 °C Serial.println( sensor. distance(-20)); // 気温、約 -20 °C での出力距離 (cm) Serial.println("=========) ========);)

両方の例の結果は次のようになります。


この例は、測定中に気温を考慮しないと、誤差が大きい結果が得られることを示しています。

距離計物体までの距離を測定するための装置です。 距離計はロボットを助ける さまざまな状況。 単純な車輪付きロボットは、このデバイスを使用して障害物を検出できます。 飛行するドローンは距離計を使用して、所定の高度で地上にホバリングします。 距離計を使用すると、特別な SLAM アルゴリズムを使用して部屋の地図を作成することもできます。

1. 動作原理

今回は、最も人気のあるセンサーの 1 つである超音波 (US) 距離計の動作を分析します。 沢山あります さまざまな変更同様のデバイスですが、それらはすべて反射音の伝播時間を測定するという原理に基づいて動作します。 つまり、センサーは所定の方向に音声信号を送信し、反射エコーを捕捉して、センサーから障害物までの音声の飛行時間を計算します。 学校の物理学の授業で、特定の媒質中の音速は一定ですが、媒質の密度に依存することがわかっています。 空気中の音速と目標までの音の飛行時間がわかれば、次の式を使用して音の移動距離を計算できます。 s = v*tここで、v は音速 (m/s)、t は時間 (秒) です。 ちなみに空気中の音速は340.29m/sです。 その任務に対処するために、距離計には 2 つの重要な機能があります。 デザインの特徴。 まず、音が障害物からよく反射されるように、センサーは周波数 40 kHz の超音波を放射します。 これを行うために、センサーにはそのような高周波音を生成できる圧電セラミックエミッターが搭載されています。 第二に、エミッターは、音が全方向に広がるのではなく(従来のスピーカーの場合)、狭い方向に広がるように設計されています。 図は、典型的な超音波距離計の放射パターンを示しています。 図からわかるように、最も単純な超音波距離計の視野角は約 50 ~ 60 度です。 センサーが前方の障害物を検出する一般的な使用例では、この視野角が非常に適しています。 超音波は椅子の脚さえも検出できますが、レーザー距離計では気付かない可能性があります。 距離計をレーダーのように円を描くように回転させて周囲の空間をスキャンする場合、超音波距離計では非常に不正確でノイズの多い画像が得られます。 このような目的には、レーザー距離計を使用することをお勧めします。 超音波距離計の 2 つの重大な欠点にも注目する価値があります。 1 つ目は、多孔質構造の表面は超音波をよく吸収し、センサーはそこまでの距離を測定できないことです。 たとえば、マルチコプターからフィールドの表面までの距離を次のように測定するとします。 背の高い草そうすると、非常にあいまいなデータが得られる可能性が高くなります。 発泡ゴムで覆われた壁までの距離を測定する場合にも、同じ問題が待ち構えています。 2 番目の欠点は、音波の速度に関連しています。 この速度は、測定プロセスをより頻繁に行うほど高速ではありません。 ロボットの前方 4 メートルの距離に障害物があるとします。 音が往復するまでに 24 ミリ秒もかかります。 飛行ロボットに超音波距離計を取り付ける前に、7 回測定する必要があります。

2.超音波距離計 HC-SR04

このチュートリアルでは、HC-SR04 センサーと Arduino Uno コントローラーを使用します。 この人気の距離計は、1 ~ 2 cm から 4 ~ 6 メートルまでの距離を測定できます。 同時に、測定精度は0.5〜1cmです。 異なるバージョン同じHC-SR04です。 より良く機能するものもあれば、より悪いものもあります。 基板の模様で見分けられます 裏側。 正常に動作するバージョンは次のようになります。

失敗する可能性があるバージョンは次のとおりです。

3. HC-SR04の接続

HC-SR04 センサーには 4 つの出力があります。 グランド (Gnd) と電源 (Vcc) に加えて、Trig と Echo もあります。 これらのピンは両方ともデジタルなので、Arduino Uno の任意のピンに接続します。
HC-SR04 GND VCC トリガー エコー
Arduino ウノ GND +5V 3 2
装置の概略図 レイアウトの外観

4. プログラム

そこで、センサーにプローブ超音波パルスを送信するように命令し、その戻りを記録してみましょう。 HC-SR04のタイミング図がどのようになるかを見てみましょう。
この図は、測定を開始するには出力で生成する必要があることを示しています。 トリガー長さ 10 μs の正のパルス。 これに続いて、センサーは一連の 8 パルスを放出し、出力のレベルを上げます。 エコー、反射信号を待つモードに切り替わります。 距離計が音が戻ってきたことを感知すると、正のパルスが完了します。 エコー。 必要なことは 2 つだけであることがわかりました。Trig でパルスを作成して測定を開始し、Echo でパルスの長さを測定することで、簡単な式を使用して距離を計算できます。 やりましょう。 int echoPin = 2; int trigPin = 3; void setup() ( Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); ) void loop() ( int 継続時間, cm;digitalWrite(trigPin, LOW);遅延マイクロ秒(2);digitalWrite (trigPin, HIGH); 遅延マイクロ秒(10); 持続時間 = パルスIn(echoPin, HIGH); (100)パルスイン 長さを測ります脚のechoPinをマイクロ秒単位で実行します。 プログラムでは、サウンドの飛行時間をduration変数に記録します。 前にわかったように、時間に音速を掛ける必要があります。 s = 持続時間 * v = 持続時間 * 340 m/s音速を m/s から cm/μs に変換します。 s = 継続時間 * 0.034 m/μs便宜上、変換します 10進数普通に: s = 継続時間 * 1/29 = 継続時間 / 29ここで、音が目標に到達するまでと目標に戻るという 2 つの必要な距離を伝わったことを思い出してください。 すべてを 2 で割ってみましょう: s = 期間 / 58これで、プログラムの 58 という数字の由来がわかりました。 プログラムを Arduino Uno にロードし、シリアル ポート モニターを開きます。 センサーを次の場所に向けてみましょう さまざまなアイテム計算された距離をモニターで確認します。

タスク

距離計を使用して距離を計算できるようになったので、いくつかの便利なデバイスを作成します。
  1. 建設用距離計。 プログラムは距離計を使用して 100 ミリ秒ごとに距離を測定し、結果を象徴的な LCD ディスプレイに表示します。 便宜上、得られたデバイスは小さなケースに入れて電池で駆動することができます。
  2. 超音波杖。 測定された距離に応じて、さまざまな周波数でブザーを「鳴らす」プログラムを書いてみましょう。 たとえば、障害物までの距離が 3 メートルを超える場合、0.5 秒に 1 回ブザーが鳴ります。 1 メートルの距離では、100 ミリ秒に 1 回。 10cm未満 - ビープ音が絶えず鳴ります。

結論

超音波距離計は、使いやすく、低コストで正確なセンサーであり、何千台ものロボットでその機能を十分に発揮しています。 レッスンで学んだように、センサーにはロボットを構築する際に考慮すべき欠点があります。 英断超音波距離計とレーザー距離計を組み合わせて使用​​することもあります。 この場合、お互いの欠点を補い合います。

こんにちは、親愛なるプログラマーの皆さん。 今日は3回目のレッスンに進みます。 私たちはつながることを学びます 超音波距離計 HC-SR04からArduinoへ。 整理しましょう 距離計の動作原理、このデバイスの特性とプログラミング。

さあ、始めましょう! まずは距離計の特徴から見ていきましょう。

超音波センサー HC-SR04の特徴

このような超音波センサーの赤外線センサーに対する大きな利点は、超音波センサーが光源や色の障害物の影響を受けないことです。 薄い物体や毛むくじゃらの物体までの距離を測定するのが難しい場合があります。 空気中の音速は温度に依存すると言いたいのです。 したがって、測定誤差は温度の上昇または下降に応じて変化します。

  • 動作電圧 4.8V ~ 5.5V (最大±0.2V)。
  • 測定範囲:2cm~400cm。
  • 動作温度範囲: 0°C ~ 60°C (±10%)。
  • スタンバイモード時の消費電流は最大2mAです。
  • 動作モードでの消費電流は 15 mA です。
  • 超音波の動作範囲は周波数 40 kHz です。
  • 視野角15度。
  • 3 mmの分解能で0.03~0.6 msの距離を測定します。
  • 0.6 から 5 まで誤差は増加します。

センサーには 4 つの出力があります。

  • VCC:「+」電源
  • TRIG (T): 入力信号出力
  • ECHO(R):出力信号出力
  • GND:「-」電源

超音波距離計接続に必要な部品

  • Arduino (私たちの場合 - UNO)
  • ブレッドボード (デバイスを Arduino に簡単に接続するためのブレッドボード)
  • ワイヤー
  • 超音波センサー HC-SR04

超音波距離計 HC-SR04 の動作原理


  1. 持続時間 10 μs のパルスを Trig ピンに適用します。
  2. 距離計の内部では、入力パルスは 40 kHz の 8 パルスに変換され、「T アイ」を通して前方に送信されます。
  3. 障害物に到達した衝撃は反射して「Rアイ」で受信されます。 Echo ピンで出力信号を取得します。
  4. コントローラー側で直接、受信信号を距離に変換します。

距離計をArduinoに接続するための図

超音波センサーを Arduino に接続する図が表示されます。 ご覧のとおり、非常にシンプルで非常に興味深いものです。 ただし、正しい接続を忘れないでください。 私のアドバイス: 接続エラーの検索により多くの時間を費やすことになるため、決して急いでデバイスを接続しないでください。


次のステップは、プログラムのスケッチを検討することです

プログラミング超音波センサー HC-SR04

#定義する Trig 8 /* パルス供給ピンを指定*/
#define Echo 9 /* パルス受信端子を指定*/
void setup() (
ピンモード (トリガー、出力); /*終了として開始 */
ピンモード (エコー、入力); /*入力として開始 */
シリアルの開始 (9600); /* ポート速度を設定します */
}
unsigned int impulseTime=0;
unsigned int distance_sm=0;
void ループ() (
digitalWrite(Trig, HIGH); /* 距離計のトリガー入力にパルスを適用します */
遅延マイクロ秒(10); /* パルスは 10 マイクロ秒続きます */
digitalWrite(Trig, LOW); // パルスをオフにする
impulseTime=pulseIn(エコー、HIGH);
/*インパルスを受信し、その長さを計算します*/
距離_sm =インパルス時間/58; /* 値をセンチメートルに変換します */
Serial.println(距離_sm); /* 値をプログラムポートに出力します */
遅延(200);
}

このコードを貼り付けたら、それをプログラムにロードし、「ポート モニター」を有効にします。 そこにはセンサーから障害物までの距離が表示されるので、物体の距離を変えてみてください。

これはあなたが手に入れるべきものです!



すべてうまくいったことを願っています! ご質問がございましたら、下記までご連絡ください。
  • ブレッドボード;
  • Arduino IDE開発環境を搭載したパソコン。
  • 1 動作原理超音波距離計 HC-SR04

    超音波距離計 HC-SR04 の動作はエコーロケーションの原理に基づいています。 音響パルスを空間に放射し、障害物から反射された信号を受信します。 物体までの距離は、音波が障害物に到達して戻ってくるまでの伝播時間によって決まります。

    音波の発射は、脚に少なくとも 10 マイクロ秒続く正のパルスを印加することから始まります。 トリガー距離計。 パルスが終了するとすぐに、距離計は周波数 40 kHz の音響パルスのパケットをその前の空間に放射します。 同時に脚にも エコーレンジファインダーは論理ユニットとして表示されます。 センサーが反射信号を検出するとすぐに、ECHO ピンに論理 0 が表示されます。 ECHO レッグ上の論理ユニットの継続時間 (図の「エコー遅延」) によって、障害物までの距離が決まります。

    HC-SR04 レンジファインダーの距離測定範囲は 0.3 cm の分解能で最大 4 メートルです。視野角は 30 °、有効角度は 15 °です。 スタンバイモードの消費電流は2mA、動作時は15mAです。

    2 接続図距離センサー

    超音波距離計には +5 V の電圧が供給されます。他の 2 つのピンは任意の Arduino デジタル ポートに接続されます。11 と 12 に接続します。



    3 オブジェクトまでの距離を取得するセンサーHC-SR04より

    次に、障害物までの距離を決定し、それをシリアル ポートに出力するスケッチを作成しましょう。 まず、TRIG ピンと ECHO ピンの番号を設定します。これらはピン 12 と 11 です。 次に、トリガーを出力として宣言し、エコーを入力として宣言します。 シリアル ポートを 9600 ボーで初期化します。 サイクルを繰り返すたびに ループ()距離を読み取り、ポートに出力します。

    Const int trigPin = 12; const int echoPin = 11; void setup() ( pinMode(trigPin, OUTPUT); // トリガー - 出力ピン pinMode(echoPin, INPUT); // エコー - 入力digitalWrite(trigPin, LOW); シリアル.begin(9600); // シーケンスの初期化 ポート } void ループ() (長距離 = getDistance(); // センサーからの距離を取得 Serial.println( distance); // シリアルポートへの出力遅延(100); } // オブジェクトまでの距離を cm 単位で決定します long getDistance() (長い距離_cm = getEchoTiming() * 1.7 * 0.01; distacne_cm を返します。 } // 遅延時間を決定する long getEchoTiming() ( digitalWrite(trigPin, HIGH); // 10 μs のトリガー パルスを生成します lateMicroseconds(10); デジタル書き込み(trigPin, LOW); // echoPin ピンの HIGH レベルの持続時間を決定します、μs: long period =pulseIn(echoPin, HIGH); 返品期間。 }

    関数 getEchoTiming()トリガーパルスを生成します。 10 マイクロ秒のパルスを生成するだけで、これが距離計が音声パケットを宇宙に放射し始めるトリガーになります。 次に音波の送信開始からエコーの到達までの時間を記憶します。

    関数 getDistance()物体までの距離を計算します。 学校の物理学の授業で、距離は速度と時間の積に等しいことを覚えています: S = V×t 空気中の音の速度は 340 m/秒で、時間はマイクロ秒 (変数) でわかります。 間隔)。 時間を得るために 間隔音はオブジェクトに到達してから戻ってくる距離の 2 倍になるため、結果を 1,000,000 で割る必要があります。 つまり、物体までの距離は S = 34000 cm/秒 × 持続時間 / 1,000,000 秒 / 2 = 1.7 cm/秒 / 100、それが私たちがスケッチに書いたことです。

    マイクロコントローラーは乗算演算を除算演算よりも高速に実行するため、 :100 同等品と交換させていただきました ×0.01.

    4 仕事用の図書館エコーロケーター付き HC-SR04

    また、多くのライブラリは超音波距離計で動作するように作成されています。 たとえば、このライブラリ Ultrasonic です。 ライブラリのインストールは標準で行われます。ダウンロードしてディレクトリに解凍します。 /図書館/、Arduino IDEフォルダーにあります。 これ以降、ライブラリを使用できるようになります。

    ライブラリをインストールしたら、新しいスケッチを書いてみましょう。

    #含む // 超音波ライブラリ Ultrasonic(12, 11) を接続します。 // トリガー - 12、エコー - 11 void setup() (シリアル.begin(9600); // シーケンスの初期化 ポート } void ループ() ( float dist_cm = 超音波.レンジング(CM); // 距離(cm) Serial.println(dist_cm); // ポートまでの距離を出力します遅延(100); }

    その操作の結果は同じです。シリアルポートモニターには、オブジェクトまでの距離がセンチメートル単位で表示されます。

    スケッチに書くなら float dist_cm = 超音波.レンジング(INC);- 距離はインチで表​​示されます。

    5 研究から得た結論ソナー付き HC-SR04

    それで、私たちはに接続しました Arduino超音波距離計 HC-SR04 とそこからのデータを 2 つに分けて受信 違う方法: 特別なライブラリを使用する場合と使用しない場合。

    ライブラリを使用する利点は、コードの量が大幅に削減され、プログラムの可読性が向上することです。デバイスの複雑さを深く掘り下げる必要がなく、すぐに使用できることです。 しかし、そこには欠点があります。デバイスがどのように動作するのか、デバイス内でどのようなプロセスが行われるのかについての理解が深まりません。 いずれにしても、どの方法を使用するかはあなた次第です。

    超音波距離計がお得に買えます



    サイトの新着情報

    >

    最も人気のある