赤外線測距センサー(GP2Y0A21YK)を Arduino で試す

以前、「赤外線測距センサーを注文し直し(^^;」というエントリーで書いたように、最初に購入した測距センサーでは測距出来る距離が考えている要件に足りなかったので、別のセンサーを改めて購入し直した。

その部品が先週届いたのだが、今日になって、やっと Arduino につないでみることが出来た。測距センサーは SHARP GP2Y0A21YK。測距範囲が 10~80cm のやつ。

接続図(回路図に非ず(^^; 回路図、よくわかんねえ(^^;)はこんな感じ。

20171029_arduino1.JPG

「小さな電源の場合は、電源ピン付近に10uF程度のコンデンサを入れた方が安心」という記事を見たので、「赤外線測距モジュールで物体の距離を測ってみます(1/2)」というページを参考にコンデンサも入れてみた。

んで、センサーから目標物の距離によって、Vo コネクタから出力される電圧が変化するので、それを Arduino のアナログ入力ピンで拾うんだけど、数値はボルト数ではない。
アナログ入力ピンから読んだ値 ÷ 1023 × 5 でボルト数になるみたいだけど、わざわざボルトに直して値の評価をする必要もないし、そもそも、どうも電圧にも個体差があるようだ。

ということで、こういうプログラムを作って、距離によって実際の値がどのように変化するか調べてみた。

/*
 * GP2Y0A21 sensor tester
 */

void setup() {
     pinMode(8, OUTPUT);      // デジタルピン 8番から 5V 供給
     Serial.begin(9600) ;     // 9600bpsでシリアル通信のポートを開きます
     digitalWrite(8, HIGH);   // 電源ON
}
void loop() {
     int ans ;

     ans = analogRead(0)  ;   // センサーから読込む
     Serial.println(ans) ;    // シリアルモニターに表示させる
     delay(5000) ;            // 5000ms(5秒)時間待ち
}

実際にアナログピンで取れた数値はこんな感じ。

10cm
480
477
479

20171029_arduino2.JPG
20cm
271
271
272

30cm
202
204
203

40cm
185
185
186

50cm
176
177
178

60cm
110
110
110

70cm
105
106
106

80cm
96
106
102

目標物を手持ちで計ったんで、若干バラつきがあるけど、まあ、だいたいまとまった数字が出てるね。
数値と距離の関係を XY グラフにした時、線は直線ではなく二次曲線「みたい」に曲がる。だから 10~20cmでは数値が大きく変化するが、70~80cmではあまり変わらない。
この曲線を完璧に計算式で再現するのは相当難しいらしい。それもあって、やはりこのように実際の数字を計ってみるのが一番良いようだ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 赤外線測距センサー(GP2Y0A21YK)を Arduino で試す

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/4626

コメントする

このブログ記事について

このページは、shinodaが2017年11月 1日 22:01に書いたブログ記事です。

ひとつ前のブログ記事は「「寅卯」で玖珂町出身の人と祖生ネタで盛り上がる」です。

次のブログ記事は「Arduino でイノシシ罠制御 その一(測距センサーで大きさを計る)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら