【Arduino】 赤外線距離センサー GP2Y0A21YK

LESSON 027

赤外線距離センサー   を使いこなす

○ 光が当たると
 

      •  抵抗値が変化する
             CdSセル 
         
      •  起電力が発生する
         太陽電池 フォトダイオード
         CCD​
            CIS(CMOSイメージセンサ)
           
      • スイッチ動作する(ONになる)​
          フォトトランジスタ​
          フォトサイリスタ
          ​
    等の作用があります。この光に対しての作用を利用したセンサについて説明します。
 
  今回は、フォトダイオード​ GP2Y0A21YK を説明します。

 
○ 赤外線距離センサ(GP2Y0A21YK0Fシャープ製 )はPSD(Position Sensitive Device  位置検出型検出器)とIRED(infrared emitting diode 赤外線発光ダイオード)と信号処理回路の3つの部分で構成されています。

        • 赤外光の発光側と受光側が一体になったセンサーでLED側の赤外光が物体に反射して受光すると距離に応じて出力電圧が変化し、この出力電圧で距離を検出することができます。
        • 測定距離を測る方法はPSD方式を使用しています。
          光の当たる位置によって距離が判ります。
            
           
        • 三角測量法により障害物との距離を算出出来ます。ところが・・・ 
             
          比例計算で
            $\frac{L}{ℓ}=\frac{A}{x}$
          になります。距離は
            $L=\frac{A・ℓ}{x}$
          xの値が判れば距離Lが計算で算出出来ますが・・・・
          このGP2Y0A21YK0Fのデータシートや参考関連のWEBページを探しても正確に距離を算出する計算式はありません。 
           
        • よって、GP2Y0A21YK0Fのデータシートを参考に計算式を導くことにしました。

          データシートより次の値を取り出しました。
           

          このデータから計算式を作りました。
             

          電圧と距離
          式(1)は
             
          電圧と距離(逆数)

          式(2)は

                

            
          式(1)(2)とも計算結果は近似値のため、式(1)を使用します。
            

        • 測距範囲:10~80cm

目 次

    • 構成部品
    • 配線図
    • スケッチ
    • 解説
    • 結果
    • まとめ
       
構成部品

Arduino​
USBケーブル​
ブレッドボード​
GP2Y0A21YK
ジャンパー線 

      
配線図  
           
  5V       ⇒ GP2Y0A21YK Vcc   (①)
  A0       ⇒ GP2Y0A21YK Vo     (③) 
  GND   ⇒  GP2Y0A21YK GND   (➁)

 
 
    
         

スケッチ《 test022》   
   
const int analogPin = A0;
int analog;
float analog1;
float analog2;
void setup() {
  Serial.begin(9600);
}
void loop() {
  analog = analogRead(analogPin);
  analog1 = 5.0 * analog /1024;
  analog2 = 27.149*pow(analog1,-1.185);  
  Serial.print(analog);
  Serial.print("   "); 
  Serial.print(analog2); 
 Serial.println(" cm");
  delay(100);
}

  
解説
  • void setup()
      

    • void loop()

        analog = analogRead(analogPin);
       
      analog の値は GP2Y0A21YK0F  の データ値 になります。
       
      ​CdS値から電圧を求めるには
      $$analog1=5×\frac{データ値}{1023}$$​
        
      距離の計算は
      $$analog2=27.149×analog1^{-1.185}$$​

  
結果
  ​  
 赤外線距離センサの10cm前に障害物を置いた結果は
 
 
  多少データにバラツキは生じますが、近似値の測定結果は得られました。

     

まとめ

○ 赤外線距離センサーは即応性は高いが測定範囲10~80cmと狭いセンサです。用途を考えて使うと使いやすいセンサーです。
     
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。

目次