デジタル式定電流放電器の制作(その2) [PIC]
カッティングマシンでのプリント基板作成検討で放電器のプリント基板を作成したので部品を実装してみたらソフトをいじりたくなってきて放電器のソフトを作成しています^^
前回の評価ソフトでは割り込み処理を軽くするためにPWMでの定電流制御としてある時点での放電電流値から次の期間の適切な Duty を予測して制御していました。
この場合、電流値が変化すると予測ズレが発生し、結果として平均放電電流のグラフが若干デコボコになっていました。(A/D変換時のノイズの影響もある)
解決策として電流値を積分(合計)していき目的の値になった時点で放電を停止するduty制御方式にすることで設定した電流値からぶれなくなりました^^
電流値を合計するついでに放電電流をmAh単位で積算し電池の容量を確認できるようにしました^^
放電電流積算値を積算回数で割って放電電流値(抵抗が1オームなので電圧値も同じ値)を算出することでノイズ対策も兼ねています。
また、放電で大きな電流を捨てているのにPICの僅かな消費電流のために別電源を持つのもなんなので放電対象の電池からPIC側の電源も供給するようにしています。
4本のニッケル水素電池の放電処理を行いますがタイミング関連の設計としては
メイン処理側では 1s 毎に測定データをLCDに表示しますが、LCD表示は時間がかかる(途中で次の割り込み処理が始まってしまう)ので最初に割り込み処理で集計しているデータをコピー&クリアする必要があります。
電源電流モニタの製作記事のようにプログラムメモリの空き領域に測定データをロギングする予定なのでプログラムをコンパクトにするために浮動小数点は使わず整数処理(一部専用の乗算や除算処理も作成)で何とか頑張っていますw
PIC16F886ではなくもっとパワフルなCPUを使った方が良いような気もしますが制限がある中であれこれ考えるのも楽しいものです^^
[ 前へ ] 連載記事 [ 次へ ]
前回の評価ソフトでは割り込み処理を軽くするためにPWMでの定電流制御としてある時点での放電電流値から次の期間の適切な Duty を予測して制御していました。
この場合、電流値が変化すると予測ズレが発生し、結果として平均放電電流のグラフが若干デコボコになっていました。(A/D変換時のノイズの影響もある)
解決策として電流値を積分(合計)していき目的の値になった時点で放電を停止するduty制御方式にすることで設定した電流値からぶれなくなりました^^
電流値を合計するついでに放電電流をmAh単位で積算し電池の容量を確認できるようにしました^^
放電電流積算値を積算回数で割って放電電流値(抵抗が1オームなので電圧値も同じ値)を算出することでノイズ対策も兼ねています。
また、放電で大きな電流を捨てているのにPICの僅かな消費電流のために別電源を持つのもなんなので放電対象の電池からPIC側の電源も供給するようにしています。
4本のニッケル水素電池の放電処理を行いますがタイミング関連の設計としては
- PWM制御周期は 250ms で 2.5ms 毎の割り込みで処理する。
- 250msに1回、放電を強制的に一瞬止めて開放電圧も測定する(ノイズ対策として1s毎に平均値を取る)
メイン処理側では 1s 毎に測定データをLCDに表示しますが、LCD表示は時間がかかる(途中で次の割り込み処理が始まってしまう)ので最初に割り込み処理で集計しているデータをコピー&クリアする必要があります。
電源電流モニタの製作記事のようにプログラムメモリの空き領域に測定データをロギングする予定なのでプログラムをコンパクトにするために浮動小数点は使わず整数処理(一部専用の乗算や除算処理も作成)で何とか頑張っていますw
PIC16F886ではなくもっとパワフルなCPUを使った方が良いような気もしますが制限がある中であれこれ考えるのも楽しいものです^^
[ 前へ ] 連載記事 [ 次へ ]
2015-02-21 23:46
nice!(0)
コメント(0)
トラックバック(2)
コメント 0