4.3.3 バッテリ充電器用自動電源SWの作成2
1.作成時期
2006/7/下旬 2.作成日数 2日間 3.実験,作成 1.部品,回路について 今回は、前回作成の自動電源SWの不具合を解決する為、マイコン回路で作成しました。以下の回路図,マイコンプログラムは、 "自動電源SWの作成2(実験)"の回路とほとんど同様です。負荷出力の遮断時に、コントローラに合わせてバッテリ充電器の 電源が6回ON/OFFする不具合はなくなりました。但し、コントローラ負荷出力の入力ポートについて、負荷出力が切断された時に (何も繋がないと)ノイズ等の影響で誤動作する為、負荷出力(+)のケーブルには、フェライトコアを付け、マイコンプログラムの エラータイマーを5秒にしました。今のところ、特に問題なく動作しています。待機電力は10Vで13mA,15Vで25mAで、リレーON時は 10Vで44mA,15Vで70mAです。通常時はリレーOFFの待機電流のみの為、約0.3W前後です。前回作成の自動電源SWよりかなり 省電力になりました。 ![]() 2.マイコンプログラムについて プログラミングツールはFEDのWIZ-Cを使用しました。入力ポートをRA0,出力ポートをRB0,RB1のデジタルポートに設定して スケルトンを生成して、以下の箇所を修正しました。プログラム処理は、約250mSでRA0ポート(プルアップ)の状態を監視して、 約10秒間RA0がONならば、RB0,RB1をONにして、RB0がOFFになった場合、約5秒監視してRB0,1をOFFにする処理です。 ○BATAUTSW_User.Cプログラム修正箇所(BATAUTSWはプロジェクト名) 1.先頭行のincludeの下に追加 #include <delays.h> #__config 0x3f50 int Counter,SetCount,ErrCounter,ErrSetCount; 2.UserInitialise()関数に記述追加 void UserInitialise() { Counter = 0; SetCount = 40; //1count=250mS ErrCounter = 0; ErrSetCount = 20; } 3.UserLoop()関数に記述追加 void UserLoop() { if(PA.B0) { Counter = Counter + 1; if(Counter >= SetCount) Counter = SetCount; ErrCounter = 0; } else { ErrCounter = ErrCounter + 1; if(ErrCounter >= ErrSetCount) { ErrCounter = ErrSetCount; Counter = 0; } } if(Counter == SetCount) { PB.B0 = 1; PB.B1 = 1; } else { PB.B0 = 0; PB.B1 = 0; } Wait(250); } ○マイコンプログラム ・WIZ-C(Ver.11)プロジェクト(BATAUTSW:04030301P.LZH) 3.以下の写真について マイコン基板(上から3枚目)の並んでいる2本の抵抗は、ありあわせです。抵抗の組み合わせで回路図の値にしています。 又、装置上面の写真(上から5枚目),装置後面の写真(下から3枚目)について、見にくいですが、コントローラ負荷出力に繋ぐ ケーブル(赤)にはフェライトコアを取り付けています。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 4.感想,今後の実験について 今回の自動電源SW2の作成で、バッテリの電源でマイコン回路を動作させて外部制御を行なう事が、可能になりました。 マイコン回路を使用すれば、タイマー機能やバッテリの電圧監視をA/D変換機能で実現する事が可能になります。 次は、マイコンの機能を多く使用した自動電源SWを作成しようと思います。 トップページヘもどる |