11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】リポバッテリー残量計モニターボードの製作② [基板の到着 – 完成・パネル製作]

前回のこちらの記事の続きとなります。

【自作基板 / JLCPCB】リポバッテリー残量計モニターの製作① [ボード設計 – 基板発注]

上記前回の記事では、リポバッテリー残量計モニターボードの構想・設計から、JLCPCBへの基板発注、そして実装済み基板が手元に届くまでの流れを紹介しました。

今回はその続編として、到着した基板へのファームウェアの書き込みから動作確認、実際の使用方法までを紹介していきたいと思います。

実際に使用してみると、負荷側に接続したデバイスのバッテリー残量や放電による消費傾向などをリアルタイムで視覚的に確認することができ、構想当初にイメージしていた「リポバッテリーを使ったプロジェクトの試作・評価」で便利に使えることが分かりました。

そこで、このボードをより使いやすく、そして見た目も含めて完成度を高めるために、専用のアルミプレートも製作して取り付けました!

前回記事の続きとなる今回の記事では、ファームウェアの書き込みから実際の使用、そして専用パネルの製作までを紹介する製作記事としてご覧いただければと思います。

リポバッテリー残量計モニターボードの製作

本ボードは、フューエルゲージICとしてMAX17048を使用し、接続した負荷に対するバッテリーの消費状況や残量変化などを確認するための試作ボードとして製作したものです。

【自作基板 / JLCPCB】リポバッテリー残量ゲージIC、MAX17048を使ったブレークアウトボードの製作!

これまでリポバッテリーを扱った自作基板製作や試作回路を組む際に、私の試作・評価環境で欲しかったバッテリーセル電圧(V)、残量(%)、消費率(%/h)などの情報をシンプルにモニターできる構成で製作したボードとなります。

左側の[IN端子]に1セルリポバッテリーを接続し、右側の[OUT端子]に試作回路などの負荷を接続することで、バッテリーから負荷へ電力を供給しながら、その時のバッテリー状態をリアルタイムで表示・確認できるというものとなります。

また、USBから外部電源を供給した場合には、OLEDディスプレイやマイコンなど、本ボード自身が消費する電力をUSB側から供給することで、接続した負荷によるバッテリー消費をできるだけ正確に確認できるようにもしています。

また、試作や評価で繰り返し使用することを考え、バッテリー充電機能も搭載しました。

このように、バッテリーを接続して負荷を駆動するだけで、バッテリーの状態や消費傾向を確認できる簡易的なモニターとして使用できるようにしています。

前回の記事作成時点ではまだ動作確認が完了していませんでしたが、その後の検証で問題なく動作することが確認できたため、いつものように基板データ(Gerber / BOM / CPL)をダウンロードできるようにしておきます。
何かの参考になれば幸いです。

また、JLCPCBへの発注方法などについては、前回の記事で紹介していますので、あわせて参考にして頂ければと思います。

【自作基板 / JLCPCB】リポバッテリー残量計モニターの製作① [ボード設計 – 基板発注]

未実装パーツの取り付け

今回はJLCPCBのアセンブリサービス(PCBA)を利用したので、ほぼすべてのパーツが実装された状態で基板が届きました。

残りの未実装パーツであるスイッチやピンヘッダー、OLEDディスプレイを取り付けて、基板を完成させます。

取り付けるパーツの詳細については、後述する[使用パーツ一覧]をご覧ください。

スルーホールパーツなので、はんだ付けに関しては特に問題ないかと思います。

[OUTPUTスイッチ]には6mm×6mm角のタクトスイッチを使用しています。

通常よく使われる5mm高のものよりも少し背が高い8mm高程度(6mm×6mm×8mm)のものを使えば、パネルを取り付けた際も押しやすいと思います。(お好みですが!)

あとOLEDディスプレイは市販のものをそのまま取り付けることもできますが、ピンヘッダーのハウジング部分(樹脂部分)を取り外してメイン基板にベタで取り付けるのが私の好みです!

このあたりも完全に好みになりますが、パネルを取り付ける際もディスプレイを一段低くすることで視認性もアップするかと思います。

以上、未実装パーツを取り付けて基板は完成です!

ファームウェアの書き込み

最後にファームウェアの書き込みを行います。

本ボードは制御用のマイコンチップとしてCH552Pを使用しています。
Arduino IDEを使用して、CH552Pにファームウェアの書き込みを行います。

CH55x(今回はCH552Pを使用)をArduino環境で使用するためには、あらかじめ[ch55xduino]ボードパッケージをインストールしておく必要があります。

CH55xシリーズを使用するのが初めての方は、こちらの記事で導入方法を詳しく紹介していますので参考にして下さい。

【電子工作】CH552をArduino環境で使ってみる!

書き込みファームウェアはこちらからダウンロードして下さい。

上記ダウンロードしたファイル(LiPo_Fuel_Gauge_Monitor_V1.0.ino)をArduino IDEで開き、ボードに[CH552 Board]を選択します。

設定項目は以下のようになります。
基本的にはデフォルト設定から変更する必要はありません。

ファームウェアの書き込みを行う際は、本ボードの電源スイッチをONにしDFUスイッチ押した状態でUSBケーブルを挿し込みPCと接続します。

これはCH552をUSB経由の書き込みモード(DFUモード)へ移行させるための操作です。

あとは通常通りArduino IDEの書き込みボタンを押すだけで、ファームウェアの書き込みが開始されます。(シリアルポートの選択は不要です)

無事に書き込みが完了すると、以下のように表示されると思います。

以上でファームウェアの書き込みは完了です。

これで、バッテリーチャージャー機能付きモニターボードの完成です!

使用方法

使用方法は非常に簡単です!

バッテリー状態をモニター

IN端子に1セルリポバッテリーを接続し、OUT端子側にモニターしたい負荷を接続します。

その状態でOUTPUTスイッチを押して負荷側への電源供給をONにすると、バッテリー電圧(V)や残量(SOC: SState of Charge)の変化、現在の放電レート(CRATE)をOLEDディスプレイ上に表示しモニターすることができます。

モニター出来る情報は限定的ですが、放電率(-%/h)を使い、例えば現在の負荷稼働で1時間あたり何%バッテリーが消費されるかといった予測ができるので、試作回路等に接続しバッテリー容量(サイズ)の選定を行うといったことにも役立ちます!

上記のようにバッテリー単体で本ボードを駆動させてモニターすることも可能ですが、その場合は本ボード上のマイコンやOLEDディスプレイ、LEDなどが消費する電力もバッテリーの消費量に含まれてしまいます。

そこで、より正確に負荷側の消費によるバッテリー状態を確認したい場合は、外部電源としてUSBケーブルを接続し電源供給を行います。

USBを接続すると、本ボード自身が必要とする電力はUSB側から全て供給されるため、本ボード自身の消費電力による影響を抑え、負荷側でどの程度バッテリーを消費しているのかをより正確に確認することが出来ます。

カットオフ電圧について

バッテリーモニター中のカットオフ電圧は、デフォルトで3.0V(3.2V以上で復帰)に設定しています。(ファームウェア参照)

バッテリー電圧がこの値を下回ると負荷への電源供給を強制OFFし、チャージ等により復帰電圧(3.2V)以上にならないと負荷への供給が出来ないようにしています。

計測する負荷の消費電流や変動が大きい場合、負荷動作時の電圧降下によってバッテリー電圧が一時的にカットオフ電圧を下回ることがあります。

このような場合、バッテリー自体にはまだ十分な容量が残っていても、負荷への電源供給が自動停止してしまいます。

そのため、接続する負荷や使用するバッテリーによっては、カットオフ電圧を適宜変更した方が良い場合もあります。

MEMO
カットオフ電圧を低く設定しすぎると、バッテリーの過放電につながる可能性があります。
設定を変更する際は、使用するバッテリーの仕様や負荷に合わせて慎重に行って下さい!

バッテリーの充電

本ボードにはバッテリーの充電機能も搭載しています。

USBケーブルとバッテリーを接続した状態で[CHARGEスイッチ]をONにすると、バッテリーの充電が開始されます。

充電電流はデフォルトで250mAに設定していますが、ボード背面のジャンパーを短絡することで500mAに変更できるようにもしています。

以上が本ボードの基本的な使用方法となります。

バッテリーを接続して負荷を駆動しながら状態をモニターするだけでなく、USBからの電源供給やバッテリーの充電まで1枚のボードで行えるようにしています。

アルミ製プレートの製作

シンプルなバッテリーモニターボードですが、リポバッテリーを使用した試作回路の評価などで便利に使えることから、今後も長く活用していくことを考えて専用のアルミ製プレートも製作しました。

JLCCNCの板金加工サービスを利用して、ボードに合わせたプレートを設計し、アルマイト処理やレーザーマーキングも追加しています。

プレートを取り付けることで、見た目の完成度だけでなく、端子やインジケーターの視認性、手に持った際の操作性も大きく向上しました。

実際のプレートの設計から発注、完成したボードへの組み付けまでの様子については、こちらの記事で紹介しています。
あわせて見て頂ければと思います。

【自作基板 / JLCCNC】JLCCNCの板金加工で自作基板用アルミプレートを製作してみました!

別バージョンのボードも製作しています

本ボードで使用したMAX17048は、外付け部品が少なく、かつバッテリーの特性をICに細かく学習させる必要(キャリブレーション)もなく、繋ぐだけで実用的な残量(%)を計算してくれるとても便利なヒューエルゲージICでした。

一方で、電流を直接測定しない仕組みのため、「今何mA消費しているか」といった瞬間的な電流値までは把握できません。

そこで、クーロンカウンタ方式により詳細な消費電流のモニタリングや高精度な残量予測などが可能なBQ27441を使い、そして細かな充電電流の選択にも対応した別バージョンのボードも現在製作しています。

こちらも製作が完了したら、別記事で詳しく紹介できればと考えています。

使用パーツ一覧

今回使用したパーツの一覧です。
PCBA用のBOMファイルは上記からダウンロードできるようにしていますが、自身でパーツを実装する場合やPCBA発注時に在庫が無い場合などで参考にして頂ければと思います。

また、スイッチやOLEDディスプレイなどスルーホールパーツは基本未実装にしています。
これらパーツは以下、PCBA未実装パーツを参考にして下さい。

PCBA実装済みパーツ

パーツ定数入手先
コンデンサ
(0603)
C1/C8 4.7μF
C2/C4/C5/C6/C14/C16 10μF
C3/C7/C9/C10/C11/C12/C13/C15 100nF
AliExpress
LED
(0603)
D1 CHARGE LED(ORANGE)
D2 ALERT LED(RED)
D3 OUTPUT LED(BLUE)
AliExpress
リセッタブルヒューズ
(1206)
F1 1.0AAliExpress
端子J1 Type-C(16P)AliExpress / 秋月電子
J2/J3 JST-PH(2P SMD)AliExpress / 秋月電子
インダクタ
(1008)
L1 2.2μHAliExpress
MOSFETQ2/Q3 AO3401A(SOT-23)AliExpress / 秋月電子
抵抗
(0603)
R1/R5 5.1kΩ
R2/R3 3.9kΩ
R4 2.2kΩ
R6/R15 1kΩ
R7/R10/R11/R14 10kΩ
R8/R9 4.7kΩ
R12/R13 100kΩ
R16 1MΩ
R17 249kΩ
AliExpress
タクトスイッチ(SMD)SW2 3mm×4mm(SMD 4P)AliExpress
充電ICU1 MCP73831-2-OTAliExpress / 秋月電子
ヒューエルゲージICU2 MAX17048AliExpress
DC/DCU3 TPS61099DRVAliExpress
マイコンCH552PAliExpress / 秋月電子
ロードスイッチU5 XC81111秋月電子
デュアル理想ダイオードU6 LM6200DRLRAliExpress

PCBA未実装パーツ

最後に!

前回の記事で製作・発注していたリポバッテリー残量計モニターボードにファームウェアを書き込み、無事に完成させることができました!

実際に使ってみると、バッテリーのセル電圧や残量だけでなく、負荷を接続した際の消費傾向も確認できるため、これまで感覚的に判断していた試作回路のバッテリー駆動時間を、数値として把握できるようになりました。

特に、リポバッテリーを使用する自作基板の試作・評価では、放電率からそのバッテリーでどの程度駆動できるのかを手軽に概算できるため、バッテリー容量の選定などにも便利に使えるツールになったと思います。

また、実際に使用してみて気に入ったこともあり、今回は専用パネルまで製作して、見た目の完成度も高めることができました。

基板データやファームウェアも公開していますので、何かの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。