距測センサ
UNO

概要

Arduinoに距測センサをつないで、距離を測定するための実験です。シャープのGP2Y0A21YK0Fというセンサを使います。秋葉原で1個400円で購入しました。

目的

電子部品の通販のページを見ていたら、距測センサを見つけました。距離に応じて出力される電圧が変化するセンサです。以下の項目について、実際に確認します。

  1. 電圧と距離の関係

データシート

GP2Y0A21YK0Fのデータシートを参照してどのようなものなのかを調べました。

概要

仕様の概要は以下の通りです。

項目 内容
測定範囲 10cm~80㎝
入力電圧 4.5V~5.5V
消費電流 30mA

また、想定する利用方法として、以下が挙げられています。

  1. 非接触スイッチ(衛生用品とか照明の制御)
  2. ロボットクリーナー
  3. 省エネセンサ(ATMやコピー機、自動販売機)
  4. 娯楽設備(ロボット、アーケードゲーム機)

ロボットクリーナーって、やっぱりアレのことでしょうか?

その他、電源の安定性を確保するためにVccとGNDとの間に10μF以上のバイパスコンデンサを入れることが推奨されています。

出力電圧と距離の関係

出力電圧と距離の関係が示されていますが、「例」と書いてあります。あたりまえですが、測定する対象であるとか、条件によって異なるということでしょう。しかも、非線形なので、電圧から距離を求めるためには、少し工夫が必要そうです。

実験

実際にArduinoにと距測センサとを接続して、電圧と距離の関係を測定してみました。バイパスコンデンサはつけませんでした。

電圧と距離の関係

測定条件

白い紙と距測センサとの距離を変化させて、電圧と距離との関係を測定しました。Adruinoとつなげて使うので、電圧ではなく、ArduinoのanalogRead()の戻り値と距離との関係を測定しました。参照電圧は、デフォルトの5Vを利用しました。

距離は、10cmから65cmまで5㎝刻みで変化させました。センサをうまく水平にできていないかもしれないし、測定対象もきっちりと平行におかれていない可能性が高いしで、誤差は結構あると思います。

測定結果

測定結果を以下に示します。

analogRead()の値 78 82 88 98 110 123 135 155 184 228 303 452
距離(cm) 65 60 55 50 45 40 35 30 25 20 15 10

グラフにすると以下のような感じです。

データシートよりは、少し低めの電圧が測定されました。あと、65cmを超えると、電圧の変動があまりなくなり、うまく測定できないように見えました。これは、測定方法が悪い可能性が高いです。

その他

誤って、電源のプラス・マイナスを逆につなげてしまったら壊れてしまいました。注意しましょう…

バージョン

Hardware:Arduino Uno
Software:Arduiono 0022

最終更新日

November 1, 2022

inserted by FC2 system