Arduinoで作る!!ライトガイドケーブルチェッカーの製作

臨床工学技士の皆さんとそうでない方こんにちは。

もしCEの為のArduino入門を一読されていない場合は先に目を通し、Arduino初心者になっておいてください。

今回はArduinoを用いて内視鏡手術の際に使用するライトガイドケーブルの劣化具合をチェックする”ライトガイドチェッカー”を作成していきます。

 

結構簡単にできるのでArduino初心者のCEさんにはぜひ作成していただきたい逸品です。

作成にあたり、Arduinoのスケッチ(プログラム)をダウンロードし同様の回路を組む事で作成する事が可能です。ぜひダウンロードください。

ライトガイドチェッカーArduinoファイル

 

今回はハードウェアとプログラム解説に関して動画を用意していますのでご参考になさってください。

それではいってみましょう。

とりあえず↓のようなものが作れます。

 

仕組みについて

上記図の通りです。

内視鏡手術手術の際に使用するライトガイドケーブルですが、繰り返し使用していると内部のファイバーが折れて光を100%伝達できなくなります。

ライトガイドの劣化がおこってくると内視鏡手術の際に術野を照らす光が厳弱して暗く見え安全で正確な手術ができなくなってしまいますので、劣化具合をチェックするという寸法です。

原理はライトガイドケーブルの一方にLEDを照射して、もう一方から出てくる光をフォトトランジスタでその光強度を計測します。

んで、光の種類をどうするか?ですが、光には波長があります。

赤は800nm(ナノメートル)程度、緑は500nm(ナノメートル)とか人間には波長によって見え方が違うのです。

光に応じてフォトトランジスタもどの波長に感度があるものを使用するのかが決まります。

今回は人間の目の感度が最も高くなる500nm程度のLEDとフォトトランジスタを用いる事で実際に見える可視光線の伝達状態をチェックするチェッカーを作成していきます。

さらにですが、計測する際にArduinoをPCよりコントロールする仕組みをプログラムする事が目標です。

PCとの接続はUSBで接続し、キーボードのあるボタンをおせばLEDを光らせフォトトランジスタが受ける光強度をA/Dコンバーターで変換、さらに数値を照度に計算してシリアル通信によりパソコンに表示させるという仕組みです。

これで、LEDの光らせかたやフォトトランジスタの扱いか、シリアル通信とシリアル通信で行うコントロールもマスターできます。最高です。

 

使用材料

詳細はクリニカルエンジニアリング 2023年9月号を参照

ハードの説明

回路図

回路図は下図の通りです。一般的な回路図より視覚的にわかるように実際の図のような回路図としています。

接続すべき場所の数字や文字を記載していますのでその通りに配線します。

LEDやフォトトランジスタには極性があるので接続間違いに注意しましょう。

LEDは足の長い方がアノードになります。

フォトトランジスタの場合、使用しているNJL7502Lはコレクタのほうの足が長くなっています。(中にはコレクタ側なのに短い場合もあるので注意)

接続は非常に簡単です。ブレッドボードを用いて配線しても良いでしょう。

arduinoでA/D変換について

arduinoUNO R3では10bit(1024段階)で5vの電圧のアナログ量をデジタル値に変換する事ができます。

入力電圧の電圧に応じて0−1023のデジタル値が割り振られ、プログラム中で計算などに使用できるのです。

今回はA0のポートをA/D変換ポートとしています。

今回はフォトトランジスタに入る光強度に応じて変化する電圧として0−5Vが入力されます。

A/D変換値は1段階あたり、5000mV÷1024≒5mVなので、たとえば2.5Vが入力されると2500mV÷5mV=500でA/D変換値は500となります。

このデジタル値からは電圧も計算する事ができますし、光強度なども算出できるようになります。

今回は電圧値から、フォトトランジスタと直列に繋いだ抵抗器の値から電流値を算出し照度を求める仕組みです。

電流値からフォトトランジスタNJL7502のデータシートにのっている電流値と照度のグラフから照度を算出しています。↓

だいたいですが、100LXの時に33μA

1000LXの時に330μAになってますよね。

A/D変換でデジタル値から電流値を計算しているので上の計算式に当てはめて照度を計算するという流れです。

 

LEDの使い方

LEDは小学生で習った豆電球のように電池をつないで点灯というわけにはいきません。

LEDを光らせるにはルールがあるので、ここで説明しておきます。

ルール1:電流を流す方向が決まっている

代表的な赤色LEDで説明していきます。

LEDには電流を流す方向が決まっています、これを極性があるといいます。

具体的にはLEDの電極の足が長い方(アノード)にプラスの電極を、短い方(カソード)にマイナスの電極を繋ぎます。

ルール2:電流量を調節しなければならない

電源の繋ぎ方(極性)はこれで終わりです、ただ注意点ですが直接電池につなぐとLEDは眩しいくらい光って最後には光らなくなり壊れてしまいます。

これは電流を制限しておらず、過大な電流が流れてしまうからです。

LEDを光らせる為には電流を制限しなければなりません。

その方法は抵抗器をLEDに直列に繋いで電流を制限します。

 

制限抵抗の決め方

LEDに流す制限抵抗ですが、買ってきたLEDのデータシートに書かれている2つの項目から計算する。

一つは最大定格電流でもう一つが順方向電圧(Vf)という値である。

最大定格電流がたとえば30mAならそれ以上の電流は流せないという事でそれ以下の電流を用いる事になります。

大体のLEDは10mAも流せば十分で、点灯を確認する程度なら5mAも流せは十分です。なんなら、1mAでもOKです。

順方向電圧はVfと書かれている事が多く、制限抵抗を決定する上で重要になります。

下記の式がVfを用いた制限抵抗の算出式になります。

制限抵抗値=(電源電圧➖LED電圧降下)÷流したい電流値 

例ですが、赤色LEDのVfを2VとしてArduinoの電源電圧5Vとします。

LEDに流したい電流値を10mA(0.01A)とすると

(5v-2v)÷ 0.01A=300Ωとなります。

 

ここまで行ってなんですが、私の場合は計算せずにいつも電流制限抵抗は1kΩを使用しています。視認の為の用途であれば全く問題ありません。

 

フォトトランジスタの使い方

フォトトランジスタは光センサとして使用されるデバイスの一つで、光の強さや光の存在を検出する為に使用される素子になります。

光を受けると、光電流がコレクタからエミッタに向けてmA単位の電流が流れる。よく似たものにフォトダイオードがあるが、光電流がμA程度と低いのが特徴です。

他にもCdsセルという光センサもarduinoではよく使用します。いずれも光の強度によって流れる電流量が変化して、センサと直列に接続した抵抗器の電圧の増減を出力とする使用方法が一般的です。

フォトトランジスタの負荷抵抗の決め方

フォトトランジスタもLED同様に使用にあたり、抵抗器が必要でそれを負荷抵抗といいます。

負荷抵抗の決め方はやはり、買ってきたフォトトランジスタのデータシートに記載された情報から計算します。

NJL7502Lのデータシート

まずは光電流(IL)が記載されていればどの程度の電流を流すかがわかります。ILとは最大定格である場合が多いので、それ以下の電流を選択する必要があります。

今回のNJL7502LであればILの半分の5mAを流すとすると↓

5V/0.005A=1000Ω

したがって負荷抵抗は1KΩと設定したました。

データシートにILの記載がなくICといってコレクタ−エミッタ間の平均的な電流値しか書かれていない場合があるが、その場合はIC電流以下になるような負荷抵抗を選べば間違いない。

負荷抵抗の位置による出力電圧の違い

フォトトランジスタやCdsなど光刺激などで電流の流れ具合が変化するセンサにおいて、負荷抵抗の設置位置の違いにより出力波形に違いが生じます。

詳しくは図の通りです。

Arduinoなどでセンサ出力を入力する場合、負荷抵抗をコレクタ側にするか、エミッタ側にするかでプログラムの書き方が変わるので注意ですね。

 

 

回路説明(動画)

動画のほうが少しわかりやすいかと思い動画を用意していますのでぜひご覧ください。

 

プログラムの説明

プログラム解説(動画)

プログラムの解説

プログラムは下記の通りです。

詳細はプログラム中に説明を書きこんでいますのでご参考になさってください。

プログラムのダウンロードはこちらから

 

 

おわりに

どうだったでしょうか?うまく動きましたか?

もし動かなかったらどうして動かないのかを順をおって確認しましょう。

繰り返しエラーを確認し修正するという繰り返しの行為が非常に重要です。

プログラミングは論理的思考の塊です。

根気よくトライアンドエラーの精神で邁進してください、さすればうまく動いた時の感動と脳汁の出る快楽が得られる事でしょう。