HC-SR04:超音波センサーのすべて

HC-SR04センサー

時々それは必要です 距離を測定する そしてそのためにあなたはあなたの処分でいくつかのセンサーを持っています。 私たちはすでにについて話すために記事を捧げました VL52L0Xなどの高精度距離センサー。 このセンサーはToFタイプであり、レーザーのおかげで非常に正確な測定に基づいていました。 しかし、精度がそれほど重要ではなく、低価格で距離を測定できるものが必要な場合は、別の可能性があります。 あなたがあなたの指先に持っているのはHC-SR04です.

の場合 HC-SR04距離センサー、距離は超音波で測定されます。 このシステムは、VL52L0Xの光学的方法に似ています。 つまり、放出され、跳ね返りがあり、受信されますが、この場合、レーザーまたはIRではなく、超音波です。 エレクトロニクス、ロボット工学、またはアマチュアメーカーに情熱を注いでいる場合は、ロボットの障害物検出システム、プレゼンスセンサーなど、さまざまなDIYプロジェクトに使用できます。

HC-SR04とは何ですか?

さて、前の段落ですでにコメントしたように、それは明らかです、 HC-SR04は超音波に基づく低精度距離センサーです。 原則として通常は使用されませんが、これを使用すると、簡単かつ高速な方法で距離を測定できます。 ほとんどの場合、障害物を検出し、センサーの応答に関連する他のメカニズムを通じて障害物を回避するためのトランスデューサーとして使用されます。

の外観 HC-SR04は非常に特徴的で、簡単に認識できます。 さらに、Arduinoスターターキットで非常に人気のあるアイテムであり、多くのプロジェクトに必要です。 このモジュールが統合する実際の超音波デバイスである40つの「目」があるため、簡単に識別できます。 それらのXNUMXつは超音波エミッターであり、もうXNUMXつはレシーバーです。 XNUMX Khzの周波数で動作するため、人間には聞こえません。

超音波センサーの原理

その始まり これは、石を井戸に投げ込んで深さを測定するときに使用されるものをシミュレートすることに基づいています。。 あなたは石を投げ、それが底に落ちるのにかかる時間を計ります。 次に、経過時間の速度を計算し、石が移動した距離を取得します。 しかし、その場合、センサーはあなたです。

ESP8266
関連記事
ESP8266:Arduino用のWIFIモジュール

HC-SR04では、エミッターは超音波を放射し、それらがオブジェクトまたは障害物に当たって跳ね返ると、レシーバーによってキャプチャされます。 ザ・ 回路は必要な計算を行います そのエコーの距離を決定します。 これは、イルカ、クジラ、コウモリなどの一部の動物が障害物や獲物などを見つけるために使用するシステムを知っている場合にも、よく知っているかもしれません。

パルスが送信されてから応答が受信されるまでの時間をカウントすることにより、時間、したがって距離を正確に決定できます。 覚えておいてください[空間=速度時間] ただし、HC-SR04の場合は、超音波が出て宇宙を移動してから障害物に当たって戻るまでの時間を測定しているので、この量を/ 2で割る必要があります。この半分...

ピン配置とデータシート

取得したモデルの完全なデータを表示するには、最良の方法は データシートを見つける メーカーのコンクリート。 たとえば、ここに Sparkfunデータシート、しかしPDFで利用できるものはもっとたくさんあります。 ただし、HC-SR04の最も重要な技術データは次のとおりです。

  • ピン配置:電源(Vcc)、トリガー(トリガー)、レシーバー(エコー)、およびグランド(GND)用の4つのピン。 トリガーは、センサーをアクティブにするタイミング(超音波が起動するタイミング)を示します。これにより、受信機が信号を受信して​​からの経過時間を知ることができます。
  • 給餌:5v
  • 超音波周波数:40 Khz、人間の耳は20Hzから20Khzまでしか聞こえません。 20Hz(超低周波音)未満および20Khz(超音波)を超えるものはすべて知覚できなくなります。
  • 消費(スタンバイ):<2mA
  • 消費作業:15mA
  • 有効角度:<15º、オブジェクトの角度に応じて、良い結果または悪い結果が得られる場合があります。
  • 測定距離:2cmから400cmまで。ただし250cmからは解像度があまり良くありません。
  • 中解像度:実際の距離と測定値の間の0.3 cmの変動。したがって、レーザーのように高精度とは見なされていませんが、測定値はほとんどのアプリケーションで非常に受け入れられます。
  • 価格:約€0,65から

Arduinoとの統合

Arduinoを搭載したHC-SR04

Arduinoへの接続はこれ以上ないほど簡単です。 そのようにマークされたArduinoの対応する出力へのGNDの接続、Arduino 5v電源を備えたVcc、およびプロジェクト用に選択された入力/出力を備えたHC-SR04の他のXNUMXつのピンへの接続を担当する必要があります。 あなたはそれが上部のフリッツスキームで単純であることがわかります...

ティガーが適切にアクティブ化するには、少なくとも10マイクロ秒の電気パルスを受信する必要があるというXNUMXつの考慮事項が必要です。 以前は、LOW値であることを確認する必要があります。

のように ArduinoIDEのコード、他のコンポーネントのようにライブラリなどを使用する必要はありません。 距離を計算する式を作成するだけです...もちろん、HC-SR04センサーの測定に応答してプロジェクトに何かを実行させたい場合は、必要なコードを追加する必要があります。 たとえば、コンソールに測定値を表示するだけでなく、サーボモーターを特定の距離だけ一方向または別の方向に動かして障害物を回避したり、モーターを停止したり、近接を検出したときにアラームを作動させたりすることができます。 。

 プログラミングの詳細: Arduinoマニュアル(無料PDF)

たとえば、あなたはこれを見ることができます ベースとして使用する基本コード:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ホセ

    説明はとても便利で簡単だと思いました。