お仕事で,もう少し高い電圧の電池の放電器を作ったことがあって,それはほぼ想定通りの動きをしていた。それは,
こんな感じの,パワートランジスタのコレクタ接地回路=定電流回路だった。
今回は,ニッケル水素電池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オームの電流値を表示しまっくてみた。
0 件のコメント:
コメントを投稿