Arduinoを利用したライトガイドケーブルチェッカーの制作&ソフトの開発

今年2019年5月18・19日に行われた第29回日本臨床工学技士会が行われました。

そこでJACET Best Presentation Award、通称BPA賞を受賞した演題のなかで

BPA03 ”発光ダイオードとフォトトランジスタを使用したライトガイドテスターの作成”という演題がありました。

筆頭演者は島根県立中央病院の臨床工学技士である”福島成文”さんというかたで、面識があります。

すばらしいアイデアだと思います

無性に私もこれを作りたくなったのでちょっと作成してみようと思います。。

福島さんにもこの演題に関してブログでの掲載許可をいただきましたのでご紹介もかねて・・

福島さんのアイデアでは劣化具合がいまいちわからないライトガイドケーブルをLEDと光を感知するフォトダイオードにて光の強度をアナログ的に評価するというものです。

今回は福島さんのアイデアをさらに発展させて、arduinoというマイコンで大幅に部品点数を減らして、ソフトウェアにて光の減弱率を計算できるようにしました。

また、その結果をシリアル通信にてPCで自作ソフトにて確認及び制御できるようにしています。

とりあえず、最終的にできあがったソフトウェアとハードを動画にてご覧ください⬇︎

 

 

 

回路の解析

じつは、私は第29回日本臨床工学技士会に参加しておりませんで、福島さんの演題きいてません・・・

ですから抄録から予想してどのような回路構成かを推測&facebookで公開されている回路写真で回路の予想をしました。

たぶん、LEDからの光➡︎ライトガイドケーブル➡︎フォトトランジスタで光の強弱を電圧比較回路(コンパレーター)で基準となる電圧を比較してそれを下回ったら(光が減弱したら)確認用LEDを点灯もしくは消灯させるという仕組みと推測できました。

抄録からは光の減弱具合が30%に下がるとコンパレーターが作動するようにフォトトランジスタの抵抗調節などしたことと思います。

 

作ってみるにあたって

さぁ私も似たようなものを作成してみようと考えた場合、やはり同じものを作成するのもあれです。

ですので、フォトトランジスタも同じものでなく、回路構成も全く異なるものにしようと思います。

基本的にライトガイドケーブルの光の通り具合を評価するのは福島さんのアイデアのLEDの光を透過させて、フォトトランジスタで評価するという基本は変わりません。

使用フォトトランジスタとLED

使用するフォトトランジスタは秋月電子で売っている安いフォトトランジスタにしました。

こちらリンクです。

NJL7502Lという種類で560nm付近の光に最も感度が良いとされるフォトトラです。

560nmというと光でいうと”緑”になります。

ですのでライトガイドケーブルを透過させるLED光も緑色にする事にしました。⬇︎

超高輝度5mm緑色LED OSG58A5111A (10個入)

 

フォトトランジスタの特徴

フォトトランジスタを使用するにあたって素子の特徴をわかっていなければなりません。

ですので、データシートを読んで見る事にしました。

フォトトランジスタの光電流

フォトトランジスタは光に応じて流れる電流が増えます。

流れる電流を直列に抵抗を入れる事によって、電圧に変換する事により光に応じた電圧値を知る事ができます。⬇︎

データシートでは最大定格で10mA流れるとなっているので、これ以下の電流に抑える必要があります。

今回は5Vの電源を想定しているので、最大定格の半分の5mAは流せるようにしてフォトトランジスタと直列にいれる抵抗は5/0.005で1kΩと設定しました。

 

フォトトランジスタの光電流とルクス

みてわかりますが、これ両対数グラフです、比例しているように見えますが光電流が流れると指数関数的にLuxが変化する事がわかります。

スポンサードリンク

何を言いたいのかというと電流値の変化で光の強度が比例していないという事です。

ですので、暗い時の電流値の変化量と明るい時の電流の変化量が同じでも光の感じ方は全く異なるという事です。

 

ライトガイドチェッカーとしてフォトトランジスタを使用する問題点

ここまできて気づいたのですが、光の強度で流れる光電流をチェックするわけですが、変化量が微小すぎます。

これはアナログ回路で利用するなら”光がある”or”光がないもしくは弱い”という判断でしか使うのはかなり難しいのでは?と思いました。

福島さんはこれを可変抵抗で調節してかなりの神技で微調整したのではと?推測。尊敬します。

同じ事してもあれなので、アナログ回路のコンパレーターの使用は諦めて最近覚えたarduinoでデジタル変換したのちにプログラムにてLux値への変換や電流変換する事を思い立ちました。

デジタルにする事でライトガイドケーブルの劣化具合も数値の変化として捉える事が可能で判断がしやすいと感じました。

 

arduinoを使う

回路構成はいたってシンプルです。

LEDを光らせてそれを受けるフォトトランジスタを設置しその出力をarduinoのアナログリードで読み取りA/D変換します。

A/D変換は10bitなので0-1023段階の値が得られます。

arduinoのプログラム内でこの数値を電圧変換、電流変換、さらにフォトトランジスタのデータシート通りにLux変換します。

その後、arduinoのUARTにてパソコンとシリアル通信をいます。

部品は

arduino 1個 (互換品) 800円

緑色LED 1個 OSG58A5111A 200円

フォトトランジスタ 1個 NJL7502L 100円

白色部品がフォトトランジスタで

緑色のがLEDです。

回路図は下図の通り↓

 

この間にライトガイドケーブルを入れるという寸法です。

こちらがarduinoのプログラムです

ダウンロードしてarduinoに書き込めばすぐに使用可能でーす。

一応説明ですが、PCソフトでLEDをONできるようにLEDの配線だけ2番ピンから配線してます。

フォトトランジスタの配線はフォトトラと抵抗を直列に接続し、その中点からの配線をA0に配線してA\D変換しています。

 

 

PCソフトについて

PC側のソフト作成はVisualstudio2019 を使用して作成しました。

使用言語はC#

formアプリで作成しています。

作成期間はたったの1日でできました。

結構簡単にできます。 visualstudio2019最高です。

自作ソフトの作成に関しては長くなるので割愛します。

こちらからダウンロードできまーす。

PCソフトの使い方

①PCにarduinoを接続します。

②arduinoのcom番号を確認します

③lightguidecheckerform.exeを立ち上げます。

④arduinoのcomportを選んで接続を押します。

⑤接続できたらOKがでます。

⑥OKがでたらライトガイドケーブルにセンサとLEDを差し込んで”連続測定”を押して計測スタートです。

⑦閾値の設定は新品のライトガイドケーブルか問題のないライトガイドケーブルを計測して、最大値を記憶させておくと、現在のLux値がどのくらいの光強度かを%で表示してくれます。

⑧終わるときは”切断”をおします。

以上簡単でしょ?

 

 

センサ部分の加工

実際には下図のようなライトガイドケーブルのチェックを行いますのでこれにあったセンサー形状にします。

そこで使用したのが、10mmと8mmのシリコンチューブです

チューブを加工

 

そしてLEDとフォトトランジスタを結線して、ショートしないように

電極部を熱収縮チューブで保護します。

 

グルーガンでチューブに固定しました。

 

センサの完成です。

実際にはLEDとフォトトランジスタ用の抵抗器1kΩが2本ハンダしています。

センサ部分はたったこれだけです。

多くの制御はPC側のソフトウェア上で行っているので、センサとarduinoではμV単位の電圧を読み取りPC側に送るだけのシンプル構成です。

閾値調節や値の変換などはPC側で行っている分、連続的な測定が可能でしかも%表示もわかりやすくいい感じにできました。

 

見てくれは悪いですがなんとか完成!! あとは何かケースにでも入れればOKです。

 

以上 arduinoとPCを用いたライトガイドケーブルチェッカーでした。

ご興味あるかたはぜひ作ってみてください。

わからない部分があればメールでもしていただければお教えいたします。

スポンサードリンク
カテゴリー: 制作事例 パーマリンク

Arduinoを利用したライトガイドケーブルチェッカーの制作&ソフトの開発 への1件のコメント

  1. tek2465 のコメント:

    こんなことを書くと気分を害されるかもしれませんが

    受光部のフォトトランジスタと、発光部のLEDには温度特性があるので
    この回路だと、室内温度の影響が出るかもしれません。
    arduinoに精度の良い温度センサーを2個つないで、
    受光部のフォトトランジスタと発光部のLEDに、それぞれ付けて、
    同時に計測したら良いかと思います。
    もし室温の影響が無ければ現状で良いし。
    もし室温の影響が有るなら、プログラムで補正してはどうでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください