電子回路入門 フォトインタラプタ・フォトリフレクタ


はじめに

書籍に沿って引き続き進めていきます。

フォトインタラプタ・フォトリフレクタとは

物体の検知などによく使用されます。
回路図に違いはありませんが、検知する方法が異なります。

フォトインタラプタの場合は以下のように、LEDとフォトトランジスタ(フォトダイオード等)の間の遮蔽物の有無を検知することができます。
基本的に何でも検知してくれますが、検知したいものが大きくなると、LEDとフォトトランジスタの間が広くなり、発光と受光を別々で設置する必要があったりします。形PTB-802 透過形光電センサ ←こんな感じ

フォトリフレクタは反射を利用して、前の物体の有無を検知します。
下の図では黒色の物体を検知していますが、黒色は赤外線を吸収するので、あまり反射しません (悪い例でした)
逆にその原理を利用してライントレースをしたりします。

使用部品

回路図

ピン配列は以下のようになっています。(詳しくは仕様書)
赤外線LED(アノード、カソード)
フォトトランジスタ(エミッタ、コレクタ)

fritzingに同じものが無かったので、それに近いものを図では使用しています。
フォトトランジスタ側につなぐ抵抗は100~500Ω程度で、抵抗値を上げるとセンサーの感度も上がります。(フォトリフレクタには2kΩを使用しました。)

プログラム

前回と同様にLEDを…
LEDつけてなかった(´-ω-`)
と、いうわけで結果はコンソール出力します。
PsoC5の設定はTopDesign.cyschにUARTを追加します。
あとはピンを指定するだけで簡単にUSB経由でパソコンにコンソール出力できます。

Rx_1 P12[6]
Tx_1 P12[7]

あとはTeraTermやRloginを使用してcomポートへ接続するだけ。

フォトインタラプタでは、検知した際にON、通常時はOFFが出力されます。
フォトリフレクタでは、検知した際にOFF、通常時はONが出力されます。

#include "project.h"

int main(void)
{
    CyGlobalIntEnable;
    int sw = 0;
    UART_1_Start(); 
    for(;;)
    {
     if(sw != SW_Read()){
      sw = SW_Read();
      if(sw == 1){
       UART_1_PutString("OFF\n");
      }else{
       UART_1_PutString("ON\n");
      }
     }
    }
}

出力結果