超音波距離センサーが届いたので動作確認

以前セットで購入したけど使っていなかった超音波センサーが、古過ぎなのか?最初から壊れていたのか?定かではないですが動かなかったのでGW前に急遽調達。届いたはモノが、無事動作するかどうか確認した様子をメモ。

上の写真のが今回調達した超音波センサー「US-015」。 本物を買おうと思って、日本のamazonで400円くらいで注文しましたが、中華なパッケージで香港から届いたので自分で中国から注文すれば安かった(100円するかな?)のに〜と、とても残念な代物です。(それでも約1週間で届きました)

ピンは4本で、それぞれ以下の様になっています。

  • VCC:5V電源ピン
  • Trig:送信ピン
  • Echo:受信ピン
  • GND:グランド(ー)ピン

動作確認は、いつもの中華なArduinoで行います。

配線は、VCC=5V、Trig=~10、Echo=13、GND=GND にそれぞれ繋ぎます。

Thinkercadで描いてみましたが、US-015は無くてHC-SR04で代用しています。
ピン位置などは同じです。見やすい様に線の色を変えています。
実際の配線写真。上の回路図とは異なり奥のGNDを使いました。

パソコンでArduino.appを立ち上げてコードを用意します。

動作確認用のコードは、Circuit BasicsHOW TO SET UP AN ULTRASONIC RANGE FINDER ON AN ARDUINO を使わせていただいています。

#define trigPin 10
#define echoPin 13

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  float duration, distance;
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) * 0.0341;
  
  if (distance >= 400 || distance <= 2){
    Serial.print("Distance = ");
    Serial.println("Out of range");
  }
  else {
    Serial.print("Distance = ");
    Serial.print(distance);
    Serial.println(" cm");
    delay(500);
  }
  delay(500);
}

何となく何が書いて有るか追えると思うのですが、中程後半「0.0341」という数字が気になると思います。これは音が空気を伝わる間に、その温度や湿度の影響を受けることを考慮するために、部屋の温度と湿度の影響を加味するための計算から出します。

音の速さ=「基準の音速」+(0.606 x 温度(℃))+(0.0124 x 湿度(%))

基準の音速は、331.5m/s(wikipedia調べ)として温度=15℃、湿度=50%とすると

音の速さ=331.5+(0.606×15)+(0.0124X50)=331.5+9.09+0.62=341.21m/s
341.21m/s = 34121cm/s = 約0.0341cm/us となり、この速さを示しています。
※「us」 = マイクロ秒 = 1秒の100万分の1

そして、この数値の前で2で割っているのは、センサーの「T」と書いて有る側から超音波が送信( Transmit )され「R」の方で受信( Receive )している往復の距離を片道分にして導くためです。

TとRの表記の意味も分かってスッキリしたところで…(Rは右、Tは何?でした。。)

メニューのTools / Serial Monitorでセンサーが動いているか確かめます。

手を動かして距離が変化するのを確かめて、動作確認は終了です。無事使えそうです。

という感じで、今回は動作確認のメモでした。

Related Posts Plugin for WordPress, Blogger...