ラインセンサで路面のラインを読んだり、フォトインタラプタでハンドの 中に物体が入ったことを検出するために使用するセンサです。安価で非接触式 で扱い易いので、さまざまな用途があります。ただし、フォトリフレクタは光 の反射が弱い物体には使えません(表面に凹凸があり拡散する、極端に光沢が あり特定方向に反射してしまう、色が黒で光を吸収する)。フォトインタラプ タが使えない場合のみフォトリフレクタを使うべきでしょう。
全体の構成は図の通り。
発信回路の出
力はこのようになります
外光が定常的に入ります。そこでノイズ対策に変調させます。具体的には、 LEDを点滅させて、受光側はその周波数以外はフィルタでカットします。乱を 蛍光灯の50Hzなどの低周波と考えると、信号源の周波数は高いほどいいのです が、LEDの応答性能から、使用できる周波数の上限は決まってしまいます。仕 様書を見てみると、低速型のフォトリフレクタ素子では4KHzが限界ですので、 余裕を見て1kHzとします。
温度特性などはどうでもいいので、発信方法はタイマIC555を使います。 (実装面積をケチるために負論理x2で双安定マルチバイブレータを作るという 手もあります)。555の出力は以下のようになります。
デューティー=0.5として、Ra = Rbです。周波数 f = 1.443 / C ( Ra + 2Rb ) デューティー D = Rb/( Ra+Rb )
f=1kHz、Cを入手しやすい104( 0.1μF)を使うとして、f = 1.443 / C ( Ra + 2Rb ) = 1.443 / ( 3 Ra C ) Ra = 1.443 / ( 3 f C )
E24系に丸めてRa = 1.443 / ( 3 f C ) = 4.8kΩ=48E2 Rb = 48E2 = 38E2(抵抗) + 20E2(可変抵抗)
Ra=47E2 Rb=33E2(抵抗) + 20E2(可変抵抗)
555の駆動能力は分かりませんでしたが、 安全のために出力電流をデジト ラで増幅します。
複数のあるLEDのつなぎ方としては直列にする場合と並列にする場合が考え られます。
10mAで駆動するとして、素子での電圧降下が1.5V。電源電圧が5V、トラン ジスタの電圧降下が0.1Vなので
E24系列に丸めて、330[Ω]=33E1とします。(5-1.5-0.1)/10=340[Ω]
たまたま手元にあったデジトラ1001。デジトラは外づけ部品が少なくて済 むので便利です。この入力抵抗は4.7kΩ。入力が5Vで電流は5/4.7=0.744mA。 増幅率が80なので、出力電流は80 x 0.744=59.6mAで飽和します。LED5つ (50mA)までなら、飽和領域での使用になります。
構成は以下の通り。
電流検出
抵抗で電流から変換された電圧は右のようになります
電流検出抵抗を決めるにはセンサの出力電流が必要です。使用したフォト リフレクタGP2S24 はデータシートを見ると「コレクタ電流vsコレクタ電圧の グラフ」で、LEDの駆動電流10[mA]、コレクタエミッタ電圧5[V]で出力電流は 180[μA]になります。この電流で電圧を飽和させるとすると、このときの電流 検出抵抗は5[V]/180[μA]=27.8[kΩ]です。
電流検出抵抗を大きくすると応答性が悪くなります。データシートから
E24 系にまるめ33E3[Ω] とします。
フィルタ
の出力は右のようになります
理想的にはBPFです。変調信号以外の周波数ををカットします。HPFとLPF に分けて考えます。フィルタは回路上では直流カットコンデンサと二値化フィ ルタの一部として存在します。
電流検出抵抗の出力をフィルタリングすると、直流成分を含む低周波成分 がカットされて0Vで電圧変化なしになっていた部分がなくなります。また二値 化フィルタの影響で最低電圧が0Vではなくなっています。
カットオフ周波数を500Hzとして
この時の減衰率はf=1/2πRCからRC=1/2πf=3.18E-4
50Hz : G(ω) = RCω / √( 1 + (RCω)^2 )=0.0995 1kHz : G(ω) = RCω / √( 1 + (RCω)^2 )=0.8944 RC=3.18E-4から、C=0.1μF(104)としてR=318kΩ。
カットオフ周波数を1kHzとして
この時の減衰率はRC=(3.18E-2)/ 2
50Hz : G(ω) = RCω / √( 1 + (RCω)^2 )=0.0499 1kHz : G(ω) = RCω / √( 1 + (RCω)^2 )=0.7071 RC=3.18E-2から、C=0.1μF(104)としてR=3.18kΩ。
減衰率を考えカットオフは500Hzとする。よって抵抗はR=318k=330k=33E4。
ここで、電流検出抵抗が33kΩの場合に応答速度が10μsということから、受 光素子は10μ/1k=10E4[pF]の静電容量を持っており、電流検出抵抗との組み合 わせでLPFを構成していると分かる。カットオフ周波数はf=1/2πRC=15kHz。以 上から、出力段にLPFを設けなくとも問題ない。
デフォルトはOPアンプでコンパレータを作るのですが、CMOSタイプの入力 ならば電流をほとんど消費しないので、二値化回路として使えます。ただし閾 値電圧は2.5V固定です。そこで、抵抗二つをGNDとVccの間に直列に入れてそれ を併せて下駄を履かせます。
ただし2つ問題があります。
まず下駄の抵抗が前段のフィルタの抵抗と緩衝してしまいます。つまり、 HPFのカットオフ周波数を調整すると、二値化の閾値も影響を受けてしまいま す。電流をカットして電圧を伝える必要があります(例えばボルテージフォロ ア)。これは、この方式では回避できません。
もう一つは、安定性です。CMOSは2.5V付近の入力があると出力が不定値に なります。特にラッチのような双安定性を持ったICだと、長時間出力が不定値 になります。入力にヒステリシス特性を持ったICを選択する必要があります。
HPFと二値化のバイアスの干渉を考慮します
Vcc | R1 ↓ir1 →ic | V1-----------C-----------+---------Vo | R2 ↓ir2 | Gnd
1/R1+1/R2=1/Rpとしてic = -ir1+ir2 io = 0 vo = v1+∫ic/C dt = Vcc - R1 ir1 = R2 ir2 ic = ( d(vo)/dt - d(v1)/dt ) C ir1 = ( Vcc - vo ) / R1 ir2 = vo / R2 ( d(vo)/dt - d(v1)/dt ) C = - ( Vcc - vo ) / R1 + vo / R2 sCVo - sCV1 = - Vcc/sR1 + Vo/sR1 + Vo/sR2 sCVo - Vo/sR1 - Vo/sR2 = - Vcc/sR1 + sCV1 Vo(Cs - 1/sR1 - 1/sR2 ) = - Vcc/sR1 + sCV1 Vo = ( - Vcc/sR1 + sCV1 ) / (sC - 1/sR1 - 1/sR2 )
s=jωとしてVo = ( -Vcc/sR1 + sCV1 ) / (sC - 1/sRp ) Vo = Rp ( -Vcc/R1 + s^2 CV1 ) / (s^2 CRp - 1) Vo = Rp ( Vcc/R1 - s^2 CV1 ) / ( 1 - s^2 CRp )
Vccは定数なのでその影響を無視してVo = Rp ( Vcc/R1 + ω^2 CV1 ) / ( 1 + ω^2 CRp )
時定数RpCとなる。G(ω) = |Vo/V1| = RpC ω^2 / ( 1 + ω^2 CRp ) = ω^2 / ( 1/RpC + ω^2 )
フィルタの設計から、HPFの抵抗はRp=3.18kΩとします。 これを満たすR1、R2はR1=R2と仮定すると、R1=R2=2Rpです。 ( 同じ抵抗を並列にすると、抵抗値は半分になるため )
R1、R2を一つの可変抵抗Rvで実装する場合は、極値はR1+R2=Rv Rp=1/(1/R1+1/R2)=R1R2/(R1+R2)=R1R2/Rv
よって、R1=R2=Rv/2で最大値Rp=Rv/4となる。 3.18k x 4= 12.5kが必要。 抵抗を変えるとRpが小さくなりカットオフ周波数が低下する。 下駄を1.5V〜3.5Vまで変化させてもカットオフ周波数500Hzを守るには、Rp=R1(Rv-R1)/Rv=R1-R1^2/Rv dRp/dR1=1-2R1/Rv=0 2R1/Rv-1=0 R1=Rv/2 d^2Rp/dR1^2=-2/Rv < 0

ラッチをつかってホールドを行います。しかし、センサの出力を、LEDの駆 動信号をトリガにしてラッチすると、右のように出力にパルス状のノイズが入 ります。原因は、出力側フォトトランジスタのエッジが鈍ってしまっているこ とです。

そこで、トリガ信号に立上り時の遅延回路をいれます。ただし、立ち下り では遅延しては行けないので、遅延しないようにダイオードをいれます。時定 数を0.1msとして、C=10E4とすると、R=1k(=102)になります。右のようになり ます。

結果的に、このようにハルス上のノイズが消えます。
全体の信号処理のながれは右の通り。