回答:
これはそれほど難しくないはずです。
Vccは+5 V Arduino電源で、VoutはI / Oピンに接続されます。
フォトカプラの重要なパラメータは、トランジスタのHFEに匹敵するCTR(電流伝達率)です。しかし、HFEは汎用トランジスタで100前後であることが多いのに対し、フォトカプラでは1未満であることが多いため、CTR = 50%のようにパーセンテージで表されることが多く、10 mAで5 mAを出力することを意味します。
十分な電流があるように見えますが、すべて必要というわけではありません。CNY17-2は、我々は0.22ミリアンペアを得ることができるので、1ミリアンペアの入力で22%の分のCTRを有します。Arduinoは5 Vで動作し、プルアップ抵抗は最小22.7kΩにして、トランジスタが出力をローにできるようにします。さらに高くすることもできますが、トランジスタのリーク電流に注意する必要があります。CNY17-2の50 nAは低いため、問題は発生しません。また、AVRコントローラーには最大1 µAの漏れ電流がありますが、それでもトランジスターがオフの状態で100 mVの降下しか生じないため、安全です。
また、100kΩは、出力をLowにプルするのに50 µAの出力電流しか必要ないことを意味します。1 mAの入力では220 µAが出力されたため、すべてが桃色になります。35 V入力で、LEDの最大電圧降下が1.65 VR1の場合、最大33kΩである必要があります。
この抵抗値を使用して、最小入力電圧での電流を確認する必要があります。たとえば、入力電圧が12 Vまで低くなる可能性がある場合、最大10kΩが必要です。
逆並列ダイオードは逆接続から保護し、1N4148などの任意のダイオードを使用できます。
注:Oliの4N32のようなダーリントン出力オプトカプラーはCTRがはるかに高くなっていますが、それなしで実行できるように見え、ダーリントンデバイスはより高価です:4N32はCNY17の2倍です。
「MCU pin optoisolator」または同様のものをグーグルで検索すると、これを行う方法に関する情報を含む多くのページが表示されます。
典型的な回路:
光アイソレータは、示されているものと同様のものを使用できます。読みたい電圧がわかっていて、入力ダイオードの典型的な動作電流をデータシートで調べたら、R1のサイズを適切に調整できます。
たとえば、ダイオードのVfが1.2Vで、電圧が35Vで、ダイオード電流が10mAであるとします。
(35V-1.2V)/ 0.010A = 3380オーム。
D1は通常、死ぬまで数ボルトの逆電圧にしか耐えないため、逆電圧からオプト入力ダイオードを保護します。35Vのソースが奇数の負のスパイク(AC /誘導など)を生成する可能性が高い場合、これは良いアイデアです。
トランジスタ側では、ほとんどの場合1k〜100kで十分です。