ガス濃度計
【概要】
硫黄化合物ガスを検知できるガスセンサ(TGS2450)を使ったガス濃度計です。
濃度をppmなどの絶対値で表すのは難しいので、10段階のバー型のLEDを
使って相対値を表すようにしました。
ガスセンサにはヒータが内蔵されており、いったんこのヒータでセンサ部を
クリーニングしてから計測するようになっているようなので、ヒータ電流の制御が
必要です。
製作したガス濃度計の外観は下図のようになります。
中央の金属缶がガスセンサです。
右側にバー表示のLEDがあります。
アルコールガスを検知して赤色の
LEDが点灯しているところです。
【全体構成】
このガス濃度計の全体構成は下図となっています。PIC16F785を使っていますが
今回は内蔵オペアンプは使っていません。
ガスセンサのヒータには、1.6Vで140mAほど電流を流す必要がありますので
定番のDC/DCコンバータでは電流容量が不足しますので、3.3Vで全体を
動かすことにし、1Aクラスの3端子レギュレータで3.7Vから3.3Vを生成すること
としました。
ヒータの駆動はパルス状にする必要がありますので、FETを使ってヒータの
オンオフができるようにしました。
【回路構成】
上記のブロック図に基づいて作成した回路図が下図となります。
LEDバー表示器は各セグメントごとに電流制限抵抗を挿入しています。
センサは、ヒータ用電源の制御と、測定用電源のオンオフの2つの制御と
計測値の入力用のアナログ入力があります。
ヒータの制御は、FETをオンオフすることで10Ωの抵抗を直列に通してから
電流を流しています。これで100mAちょっと流れますので、ちょうど良い状態
だと思います。
センサの計測出力は、2kΩの抵抗とセンサの内部抵抗で、3.3Vの電源電圧を
電圧分圧して入力しますが、ガスの無いとき2.5V程度の出力で、ガス濃度に
応じて下がるようになっていますので、そのままA/Dコンバータの入力とする
ことができます。
【外観】
作成したガス濃度計の基板の実装状態は下記のようになっています。
LEDバー表示にすることで
かなり小型化できました。
レギュレータを間違ったため
部品面に実装していますが
本来はハンダ面側です。
このハンダ面側が下記となります。
抵抗の接続を間違ったため
一部補修改造してあります。
【プログラム概要】
このガスセンサの駆動には、ヒータと計測用電源をパルス状に制御する必要
がありますが、すべてメインループ内で順次行い、時間はすべてDelay関数に
よるループタイマで作成しています。
センサ駆動は下記のようになっています。まず、センサをクリーニングするため
ヒータを8msecだけオンとします。そして237msecだけ待ちます。
次に計測をするため、計測用電源をオンとします。これを5msec間オンとし
その間にA/Dでセンサーの内部抵抗値を抵抗との分圧電圧で計測します。
これで250msec周期で計測を繰り返すことになります。
計測電圧は、ガスの無い状態で約2.5V程度で、ガスの濃度に応じて下がります
ので、0Vと2.5Vの間を10分割してLEDのバーでレベルとして表示します。
★★★ ガス濃度計のプログラム