DENKIグループ★電子工作ブログ★

趣味でガラクタ工作をやっています。作ったものについてまとめていきます。

ニッケル水素電池4本でUSB機器を使う

こんにちは、DENです。
前回に引き続き、セリアのNi-MH電池です。今回は、電池4本で約5Vとなることに着目し、USB扇風機やUSBライトなどの機器を使えるようにする回路の紹介です。

電池4本をそのままUSB扇風機に接続すればいいじゃないか、と思われるかもしれませんが、それだと電池の電圧が0Vになるまで放電されてしまいます。アルカリ乾電池のような使い捨て電池ならそれでよいですが、過放電は充電池にダメージを与えるので、適切な電圧で放電を止める保護回路が必要です。Ni-MH電池は1本あたり0.9~1.0Vで空なので、そのへんで放電が止まるようにします。

今回の回路の要求仕様は、以下の通りです。

  • 電池(4本)の電圧を監視し、3.9Vになったら出力を止める
  • タクトスイッチで出力をオンオフできる

つまり、タクトスイッチを押すとUSB出力がオンになり、もう一度タクトスイッチを押すか、電圧が下がったらオフになるというものです。前回紹介した放電回路のようにハードウェアのみで解決もできると思いますが、今回は閾値や検出のディレイを柔軟にしておきたかったのでマイコンを使いました。

回路図

f:id:DENkiGroup:20210107205300j:plain
OUT+とOUT-から約5Vを出力するので、ここをUSB扇風機につなぎます。マイコンとしてPIC10F322を使いました。安くて小さいものが好きなのでお気に入りのマイコンです。
SW1は出力のオンオフ操作スイッチです。実際にはQ3がオンオフすることで出力をコントロールします。LED1は出力が出ているかどうかを示すLEDで、回路の働きには関係ありません。

機能の説明

マイコンソフトは以下のようなプログラムです。

  • プログラムがスタートすると、RA2にHighを出力する。
  • 2.5msごとに、VDD電圧をAD変換する。(FVR機能を使います)
  • 256回分のAD変換値を合計したものが、VDD=3.9V相当を下回っているか監視。3.2秒間連続で下回れば、RA2にLowを出力しQ3をオフにする。
  • RA1でSW1を押したかを監視し、押した場合はRA2にLowを出力しQ3をオフにする。

これにより、SW1を押すとQ3がオンしてマイコンがスタートし、再度SW1を押すか、電池電圧が3.9Vを下回るとQ3がオフして回路全体の電源が落ちるという動作を実現しています。
VDD電圧の監視は、PICのFVR(固定参照電圧)機能を使います。これはPICに搭載されている、電源電圧に関わらず一定の電圧を生成する電源です。VDDをリファレンスとしてFVR電圧をAD変換した値から、次のようにVDDが逆算できます。
  VDD=256÷AD値×FVR電圧(2048mV)
単純なプログラムなのでアセンブラで書きました。アセンブラはメモリ1ビットまで全て自分の手の内にあるような感覚がいいですね。
需要あるかわかりませんが以下にソースコード添付します。

おわりに

小規模で地味〜な回路ですけど、作っておくと色々な工作の電源に使える便利さもあります。特にちょっとした動作確認の電源で、ACアダプタの代わりとしてコンセントを埋めずに使えるのが便利です。Ni-MH電池は乾電池よりもパワーがあるのもいいですね。
ちなみに実物はユニバーサル基板を電池ボックスにグルーガンでくっつけたもので、お世辞にもキレイとは言えない仕上がりです。3Dプリンタを使ってケースを作り直したいと思っています。
f:id:DENkiGroup:20210109140919j:plain