【Raspberry Pi Pico入門 – 応用編】フォトカプラの使い方

2023年12月12日Raspberry Pi Pico入門,応用編Arduino,Raspberry Pi Pico

概要

フォトカプラとはスイッチをON/OFFするための部品の1種です。部品の内部に発光素子と受光素子が入っていて、入力側に電流を流すと発光素子が発光し、その光が受光素子に当たると出力側に電流が流れるようになります。
信号を光に変換して伝えているので、電気的なノイズを遮断できるのが大きな特徴です。(絶縁する、縁を切ると呼ばれたりします)

今回はフォトカプラの基本的な使い方と、設計する時の注意点を解説します。

実行環境

IDE:Arduino IDE 2.2.1
MCU:Raspberry Pi Pico

フォトカプラ:PC817
日本製ですと東芝製のTLPシリーズが有名ですが、シャープ製のPC817もAmazon等で簡単に入手できるので便利です。
ただ、Amazonで売られているものは中国メーカーのコピー品の可能性が高いです。値段が安く練習用として使う分には十分な性能ですが、品質がバラついたり信頼性が保証されていなかったりするので、仕事などで使う場合は秋月電子等の電子部品専門商社での購入がおすすめです。

シャープ PC817

回路

以下のように配線します。フォトカプラとLEDの向きに注意してください。
下図の方向から見て、フォトカプラは右上にマーキングが来る向き、LEDは上が長い端子になります。

回路図は下のようになっています。

コーディング

新しくスケッチを作成し、以下の内容をコピペしてください。”【Raspberry Pi Pico入門 – 3】LEDを追加してLチカ”とほぼ同じコードです。

const int PIN_LED1 = 16;

void setup() {
  pinMode(PIN_LED1, OUTPUT);
}

void loop() {
  digitalWrite(PIN_LED1, HIGH);
  delay(1000);
  digitalWrite(PIN_LED1, LOW);
  delay(1000);
}

動作確認

LEDが1秒ごとに点滅したら成功です。

解説

フォトカプラはどんな時に便利なのか

フォトカプラのように回路を絶縁する素子は他にも色々な種類がありますが、代表的なものはリレーです。リレーは電気信号を磁力に変換してスイッチをON/OFFする部品です。それぞれのメリット・デメリットは↓これです。

メリットデメリット
リレー・出力側に大電流が流せる
・交流も使える(使うリレー次第)
・扱いが簡単※1
・ON/OFFのスピードが遅い
・スイッチ時にカチッと音が鳴る
・値段が高価
・サイズが大きい
フォトカプラ・高速でON/OFF出来る
・サイズが小さい
・値段が安価
・出力側に数十mAしか流せない
・扱いに回路知識が必要
・直流しか使えない

大雑把に分けるなら、大電流や交流を扱いたいときはリレー、制御信号のように1秒間に数十回~数百回のようなレベルでON/OFFしたいときはフォトカプラと覚えておけばだいだいOKです。

設計手順

フォトカプラを使うときに回路を考える順番は、↓この順です。

  1. 出力側に何を繋ぐか考える(=出力側に流したい電流を考える)
  2. 出力側の電流(光電流)から入力側の電流(順電流)を計算する
  3. 入力側の電流が2.で計算した値になるような抵抗値を計算する

難しいことは考えたくない!という人は↓これだけ覚えておけば使えます。(なぜこの数値になるかはこの後に解説します)

  • Raspberry Pi PicoでPC817を使うときの入力側の抵抗は680Ω(順電流=約3.09mA)
  • このときの出力側に流せる電流はMax 5mA

出力側の電流を設計

フォトカプラの最大のデメリットは出力側に流せる電流が少ないことです。PC817の場合、50mAを超えると素子が壊れてしまうのでLED程度しか動かすことが出来ません。なのでフォトカプラは電流を直接ON/OFFするのではなく、トランジスタをON/OFFする形で使われることが多いです。

今回はとりあえず「3.3V、5mAの電流をON/OFFしたい」として設計します。

出力側の電流から入力側の電流値を計算

出力側にどれだけの電流が流せるかは、受光素子にどれだけ強い光が当たるかで決まります。受光素子に当たる光の強さは入力側に流す電流で決まるので、出力側の電流を決めれば入力側にどれだけの電流を流すべきかが決まります。

PC817のデータシートを見てみると下のようなグラフがあります。(データシートのリンク)
これは順電流(入力側の電流)が変化した時に、出力側にどれだけの電流が流せるかを表したものになります。ここでのポイントは2つです。

  • 順電流が小さいと発光素子の光の強さが弱いので、受光素子(出力側)に高い電圧をかけても電流が流れなくなります。
  • 順電流を大きくしすぎると発光素子の負担が大きくなり寿命が若干短くなります。

グラフによると、Ic(出力側の電流)を5mAにしたい場合、順電流は約2.5mA以上(できれば3mA以上)が必要ということがわかります。

入力側の電流制限抵抗を計算

入力側には「できれば3mA以上」の電流を流せばよいので、Raspberry Pi PicoのHigh電圧から抵抗値を計算します。
計算は↓このサイトを使うと便利です。

GPIOのHigh電圧は3.3V、PC817のデータシートによると入力側の順方向電圧は1.2V、流したい電流は3mAなので、抵抗の理想値は700Ωとなります。E12系列でこれに近い抵抗値は680Ωです。

抵抗を680Ωにした時の順電流(入力側の電流)は約3.09mAとなります。この計算は↓ここのサイトが便利です。

実際の回路で使ってみる

ここまででフォトカプラの使い方を解説しました。次に、実際の回路ではどのように使うのかについて例を紹介します。

LEDのON/OFF

今回解説した回路をシミュレーションしてみます。トランジスタを使わないケースは、マイコンが信号の受け手側になるときが多いかと思います。PLCだったり装置だったり他の回路から送られてきた信号を入力側に繋いで、マイコンを出力側に繋いてINPUTに設定するといった感じです。

回路シミュレータのリンク

外部からの信号を受け取る

工場等でマイコンを使うときはPLCやリレーの信号を受け取りたい!ということもあるかと思います。ただ工場では大型のモーターが動いていたりして信号にノイズが乗っていることが多く、そのままマイコンに繋ぐと誤動作したり、最悪の場合マイコンが破損したりします。
その対策としてよく使われるのが電気的に絶縁しているフォトカプラです。外部からの信号を入力側に繋ぐことでフォトカプラの発光素子をONにして、出力側をマイコンに接続します。
基本的には↓リンク先の右側の回路でOKです。左側のようにマイコン外部にプルアップ抵抗をつける方法はLowの時の電流値を大きくすることができるので、少しだけノイズに強くなります。

回路シミュレータのリンク