フォトセンサの設計

ラインセンサで路面のラインを読んだり、フォトインタラプタでハンドの 中に物体が入ったことを検出するために使用するセンサです。安価で非接触式 で扱い易いので、さまざまな用途があります。ただし、フォトリフレクタは光 の反射が弱い物体には使えません(表面に凹凸があり拡散する、極端に光沢が あり特定方向に反射してしまう、色が黒で光を吸収する)。フォトインタラプ タが使えない場合のみフォトリフレクタを使うべきでしょう。

構成

全体の構成は図の通り。


入力段の構成

発信回路

発信回路の出 力はこのようになります

外光が定常的に入ります。そこでノイズ対策に変調させます。具体的には、 LEDを点滅させて、受光側はその周波数以外はフィルタでカットします。乱を 蛍光灯の50Hzなどの低周波と考えると、信号源の周波数は高いほどいいのです が、LEDの応答性能から、使用できる周波数の上限は決まってしまいます。仕 様書を見てみると、低速型のフォトリフレクタ素子では4KHzが限界ですので、 余裕を見て1kHzとします。

温度特性などはどうでもいいので、発信方法はタイマIC555を使います。 (実装面積をケチるために負論理x2で双安定マルチバイブレータを作るという 手もあります)。555の出力は以下のようになります。

周波数 f = 1.443 / C ( Ra + 2Rb ) デューティー D = Rb/( Ra+Rb )
デューティー=0.5として、Ra = Rbです。
f = 1.443 / C ( Ra + 2Rb ) = 1.443 / ( 3 Ra C ) Ra = 1.443 / ( 3 f C )
f=1kHz、Cを入手しやすい104( 0.1μF)を使うとして、
Ra = 1.443 / ( 3 f C ) = 4.8kΩ=48E2 Rb = 48E2 = 38E2(抵抗) + 20E2(可変抵抗)
E24系に丸めて
Ra=47E2 Rb=33E2(抵抗) + 20E2(可変抵抗)


LED駆動回路

555の駆動能力は分かりませんでしたが、 安全のために出力電流をデジト ラで増幅します。

つなぎ方

複数のあるLEDのつなぎ方としては直列にする場合と並列にする場合が考え られます。

「n個のLED」と電流制限抵抗を直列にする場合
電流が同じになる=明るさが同じになる。ただしnの上限は「電源電圧/電圧降下(端数切捨て)」になる。
n個の「LED+電流制限抵抗」を並列にする場合
それぞれ電流が違うが、電流制限抵抗にかかる電圧が大きいので微調整できる。
「n個のLED」を並列にし電流制限抵抗と直列にする場合
電圧降下の特性の違う素子に同じ電圧がかかることになるので、あまり望ましくはない。が、抵抗の数を減らすことができる。
私の好みで、一番最後を使用します。普通は一番始めのものがいいと思います が。受光側で感度調整できるので、多くの場合は問題ないでしょう。

電流制限抵抗

10mAで駆動するとして、素子での電圧降下が1.5V。電源電圧が5V、トラン ジスタの電圧降下が0.1Vなので

(5-1.5-0.1)/10=340[Ω]
E24系列に丸めて、330[Ω]=33E1とします。

トランジスタの最大出力電流

たまたま手元にあったデジトラ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ではなくなっています。


出力のハイパスフィルタ(HPF)

カットオフ周波数を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。

出力のローパスフィルタ(LPF)

ここで、電流検出抵抗が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
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 )
1/R1+1/R2=1/Rpとして
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 )
s=jωとして
Vo = Rp ( Vcc/R1 + ω^2 CV1 ) / ( 1 + ω^2 CRp )
Vccは定数なのでその影響を無視して
G(ω) = |Vo/V1| = RpC ω^2 / ( 1 + ω^2 CRp ) = ω^2 / ( 1/RpC + ω^2 )
時定数RpCとなる。

フィルタの設計から、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
極値は
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
よって、R1=R2=Rv/2で最大値Rp=Rv/4となる。 3.18k x 4= 12.5kが必要。 抵抗を変えるとRpが小さくなりカットオフ周波数が低下する。 下駄を1.5V〜3.5Vまで変化させてもカットオフ周波数500Hzを守るには、 となる。よって、Rp=3.18kΩから、1.5k(15E2)Ω以上の可変抵抗を使用する。

ホールド

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


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


結果的に、このようにハルス上のノイズが消えます。


まとめ

全体の信号処理のながれは右の通り。


参考文献/サイト

goto TOP
このドキュメントはフリーです。
勝手に再配布/変更しても構いません
$Date: 2006/11/07 03:20:40 $
$Revision: 1.1.1.1 $