●フォトダイオードとフォトカプラを使ってみる

赤外線フォトダイオードと赤外線LEDのセットを手に入れました。
IRエミッタ IRレシーバダイオード
頭が黒いのがフォトダイオードで透明なのがLEDです。


フォトダイオードの極性を調べるとこのようになっていました。



アノードがプラスでカソードがマイナス、足の長いほうがプラスで短い方がマイナス、 通常使うLEDと同じ極性みたいです。

フォトダイオード自体の動作を調べてみた所、
光が当たらないと普通のダイオードのようにふるまい、
光が当たるとダイオードの逆方向に電流が流れるようになる。
ということだそうです。

そこで、安易にこのような回路を考えてみました。

しかし、フォトダイオードの出力電流は一般的にマイクロアンペア程度と小さな電流なので電球を点灯させる事はできませんでした。
そこで、電球を黄色LEDに入れ替えて、回路を作成し、フォトダイオードに赤外線リモコンの光を当ててみると、

赤外線リモコンをONにすると、LEDが点灯します。

赤外線を当てるとフォトダイオードの出力が確認できました。


▼赤外線LEDを発光させる

手持ちの赤外線LEDのデータが無くて、940nmの波長ぐらいしか詳細がわかりませんでした。
そこで、Vfを赤外線LEDとして一般的な1.4Vとして計算します。

一般的なLEDのVfの値としては、
赤外線 1.4V
赤色〜緑色 2.1 V
青色 白色 3.0 V
紫外線 3.4V
程度と思いますが、意外に値がずれていたりしますので調べて計算したほうが良いと思います。
ちなみに、VFとは、順方向電圧と言いこの電圧を超えた時点で電圧上昇に対する電流の増え方が急になり、電流の量に応じて発光する。
ということらしいです。

Ifは通常のLEDでの一般的な明るさの10mAの電流を流そうと思います。
一般的には10mA〜20mA程度ですが、こちらも意外に値がずれていたりしますので調べて計算したほうが良いと思います。

もし、電流制限抵抗を間に入れないで点灯させると電流が流れすぎてLEDが壊れます。

電源5Vとして抵抗値を計算すると、
(電源電圧−Vf)÷ 電流(A) = 抵抗値(Ω)

( 5V - 1.4V ) / 0.01A = 357Ω

大体360Ωでしょうか。

ちなみに、私の手元にたくさんある470Ωの抵抗を使った場合には、

( 5V - 1.4V ) / 470Ω = 0.0076A

約8mAの電流が流れる事が計算できました。


このような回路で点灯させる事にします。


■Arduinoに接続してみる

Arduinoのデジタルピンの内蔵プルアップを使って、フォトダイオードの入力を受け取りたいと思います。
内蔵プルアップを使用した場合には、対象デジタルピンがプラスの電圧を帯びているため、フォトダイオードはGNDとの間に接続します。



Arduinoに書き込んだプログラム

void setup () {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(2, INPUT_PULLUP);
}

void loop () {
  digitalWrite(LED_BUILTIN, !digitalRead(2));
}


実際に作成してみました。
フォトダイオードに当たるように赤外線LEDを点灯させると、Arduinoの基板上のLEDが点灯してフォトダイオードが動作している事を確認できました。


■フォトカプラーを作ってみる

個人的には光で絶縁できてArduinoのデジタルピンを外部から保護できればよいかなと思っているので、 フォトダイオードとLEDの二つを組み合わせてフォトカプラーのような物を作ってみたいと思います。


まずは、フォトダイオードとLEDを向き合わせてテープで止めました。


テープで止めたものを光を通さない黒いチューブをかぶせます。


チューブの両端に黒い光を通さないゴムを詰めて接着剤で止めました。


今後、この自作フォトカプラーをデジタルピンの保護に使用してみて、欠点や問題点が無いか調べてみることにします。
→ 5年ほど使用していますが問題は起きてません。


■フォトカプラー

部品として売られているフォトカプラーはフォトダイオードそのものでなくて、トランジスタ出力となっているのが一般的なようです。
パッケージが斜めの切れ込みや、印がある方がLEDのようです。



そこで実際に触ってみたいと思い、ネット通販で一番低価格なフォトカプラ DIP-4 817C を購入してみました。
DIP-4 817C フォトカプラIC 10個

しかしながら、実際に来たのは817Bと書かれた物でした、そこでデータシートを調べてみます。

VFが1.2Vで電流が20mAのようですが、10mAで使用してみる事にします。
817Xシリーズでは817Cであろうと817Bであろうと入力側は同じような物みたいです。

電源5Vとして電流を制限する抵抗値を計算すると、
(電源電圧−VF)÷ 電流(A)=抵抗値(Ω)

( 5V - 1.2V ) / 0.01A = 380Ω

大体380Ωでしょうか。
ちなみに、470Ωの抵抗を使った場合には、

( 5V - 1.2V ) / 470Ω = 0.008A

約8mAの電流が流れる事が計算できました。


▼フォトカプラをArduinoに接続してみる


このような回路で接続して動作を確認したいと思います。
Arduinoのデジタルピンは回路を簡単にするために内蔵プルアップを使いたいと思います。
内蔵プルアップにより、デジタルピン2番とACCの間に 20〜50kΩ程度のプルアップ抵抗が入っているのと同じ事になります。
Arduinoに書き込んだプログラムは
フォトダイオードを接続したものと同じです。
D2とGNDを逆に接続しても一見動作しますが実際にはD2端子の電圧は2.5V程度であり、うまく動いているようで動いていません。
正しく接続するとD2端子は0V付近まで落ちます。


実際に作成してみて、フォトカプラの入力側をON/OFFすると、ArduinoのLEDがON/OFFしました。
フォトカプラは正常に動作しているようです。
電流制限抵抗でフォトカプラのLEDを保護していますが抵抗を外して直接5Vをフォトカプラに繋げたら一瞬で壊れました、注意した方がいいですね。


▲トップページ > マイコンなど