以前セットで購入したけど使っていなかった超音波センサーが、古過ぎなのか?最初から壊れていたのか?定かではないですが動かなかったのでGW前に急遽調達。届いたはモノが、無事動作するかどうか確認した様子をメモ。
上の写真のが今回調達した超音波センサー「US-015」。 本物を買おうと思って、日本のamazonで400円くらいで注文しましたが、中華なパッケージで香港から届いたので自分で中国から注文すれば安かった(100円するかな?)のに〜と、とても残念な代物です。(それでも約1週間で届きました)
ピンは4本で、それぞれ以下の様になっています。
- VCC:5V電源ピン
- Trig:送信ピン
- Echo:受信ピン
- GND:グランド(ー)ピン
動作確認は、いつもの中華なArduinoで行います。
配線は、VCC=5V、Trig=~10、Echo=13、GND=GND にそれぞれ繋ぎます。
パソコンでArduino.appを立ち上げてコードを用意します。
動作確認用のコードは、Circuit Basics のHOW 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でセンサーが動いているか確かめます。
手を動かして距離が変化するのを確かめて、動作確認は終了です。無事使えそうです。
という感じで、今回は動作確認のメモでした。