|
ログイン
オンライン状況
2 人のユーザが現在オンラインです。 ( 1 人のユーザが 78K0 工作事例集 を参照しています。) 登録ユーザ: 0 ゲスト: 2 もっと...
|
10. 78K0S/KA1+応用ガス検知換気扇制御器の工作 2006/07/09
小ピンマイコン78K0S/KA1+を応用したガス検知換気扇制御器の工作をしました。 アンモニアや硫化水素、ブタンなどのガスをセンサーTGS2450で検知し、そのアナログ信号を78K0SのA/Dコンバータで取り込み、そのガス信号値が換気扇スタート設定値を超えたら、トライアックのゲートに信号を出力して換気扇を起動する簡単な換気扇自動制御器です。

ガスセンサーTGS2450は、内部にヒータがあり、250mSec.周期の間に8mSec.の間だけ加熱しなければならず、加熱後、センサー内部抵抗値を測定すればよい。その抵抗値は約6〜56kΩの範囲で変化する。 また、ヒータ電流は138mA程度流す必要があり、その抵抗値は約10Ωである。センサーの感度はガスの成分によって変わるので、用途によりソフト側で、感度補正が必要であろう。 ヒータは長時間加熱できないので、78k0Sのインターバル・タイマーで制御するようにした。
回路図は下記のとおりであり、ポートP42はヒータコントロール用であり、ポートP41はA/Dコンバータの取り込みタイミング制御用、ポートP40はトライアックのゲート・コントロールである。
 電源は、交流電源AC100Vで換気扇を廻し、絶縁したDC9V電源を78k0Sに供給するようにした。
Cソースは下記である。 換気扇の起動停止は、センサーのA/Dコンバータ取り込み値のチャタリングなどで換気扇の起動停止を繰り返すとモータが焼損してしまうため、2分間の無駄時間制御とした。 ガスセンサーは、人間の口臭でも反応するが、センサーTGS2450の応答性能はかなり遅く、その反応時間は1分〜2分程度の時間遅れがあるので、その辺を考慮してプログラミングする必要がある。
unsigned short t_cnt, ad_data, fan_s;
void main( void ) { TMH1_Start(); AD_Start(ADChannel0); WDTE = 0xac; fan_s = 0; ad_data = 0; while(1){ if( t_cnt >= 1 && t_cnt <= 8 ){ P4 |= 0b00000110; }else{ P4 &= 0b11111001; } if( t_cnt >= 100 && t_cnt <= 200 ){ ad_data = (unsigned short)( ADCRH ); }else{ P4 |= 0b00000010; } if( fan_s >= 240 ) P4 |= 0b00000001; if( fan_s <= 10 ) P4 &= 0b11111110; if( t_cnt >= 250 ){ if( ad_data >= 30 ){ if( fan_s <= 255 ) fan_s++; }else{ if( fan_s >= 1 ) fan_s--; } t_cnt = 0; } WDTE = 0xac; } }
extern unsigned short t_cnt;
__interrupt void MD_INTTMH1( void ) { t_cnt++; }
次回は、別の工作を予定していますので、お楽しみに・・・。 ガス検知換気扇制御器78K0S/KA1+のプロジェクト・ファイルはこちらからダウンロードして下さい。
|
メインメニュー
Google Search
78K0 最新ヘッドライン
|