火曜日, 11月 19, 2019

ニッケル水素電池 放電器 つづき

正直,ここまで手こずるとは...

お仕事で,もう少し高い電圧の電池の放電器を作ったことがあって,それはほぼ想定通りの動きをしていた。それは,


こんな感じの,パワートランジスタのコレクタ接地回路=定電流回路だった。

今回は,ニッケル水素電池1本ということもあり,電圧が低い分,たやすくできるだろうと考えていた。甘かった...

ブレッドボード上で組み,micro:bitと組み合わせてテストをしたところ,目論見では200mAぐらい余裕で流せるはずなのに, 50mAぐらいまでしか出ない。

電池1本に対しては,Vbeが大きく,電池1本程度の電荷ではどうにもうまくトランジスタをONできないようだ...

もはや micro:bit はあまり関係なくて,simulatorで仮設計した回路をブレッドボードで試す。あ,この時,micro:bit と OLED で,簡易電圧表示器を作って,複数チャンネル同時にADしながら,動作確認をしてみた。ああ,すごく便利。

その結果,以下の回路で,やっと想定通り動くようになった。


最終的にはV1はPWMから作るつもりだったけど,テストではDC3.3V直結。micro:bitは,実質3.1Vぐらいになるようで,そうすると,設計値180mAぐらい放電できる。試してみたら,本当に180mAぐらいだった。やっと動き始めた!!

エミッタ接地の強烈な増幅で,やっと小さいエネルギーのニッケル水素電池1本の電流を引き出せるようになってきた。

OLED.writeString("P0:")
OLED.writeNum(Math.round(pins.analogReadPin(AnalogPin.P0) * 3300 / 1023 * 1.434 / 1.120))
OLED.writeString("mV ")
OLED.writeString("P1:")
OLED.writeNum(Math.round(pins.analogReadPin(AnalogPin.P1) * 3300 / 1023 * 1.434 / 1.120))
OLED.writeStringNewLine("mV ")
OLED.writeString("(P0-P1)/2.2:")
OLED.writeNum(Math.round((pins.analogReadPin(AnalogPin.P0) - pins.analogReadPin(AnalogPin.P1)) * 2700 * 120 / 128 / 1023 / 2.2))
OLED.writeStringNewLine("mA ")

ちなみにOLEDには,こんな感じでP0とP1の電圧と,その間にある2.2オームの電流値を表示しまっくてみた。
 
 * 1.434 / 1.120 とかは,テスターの実測値をみながら,補正係数としたもの。



0 件のコメント: