3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wio BG770Aを乾電池で駆動!ADCで電池残量を取得する基板改造の実例

Posted at

はじめに

Wio BG770Aは、Seeed株式会社が提供するLTE Cat-M1/NB-IoT対応のIoTモジュールで、SORACOMとの連携にも優れており、プロトタイピングやフィールド実験に活用されることが多いデバイスです。

本記事では、このWioBG770Aを電池駆動で運用するための基板改造について紹介します。

Wio BG770Aを、屋外や電源のない環境で使いたいと考えたとき、電池駆動は魅力的な選択肢です。しかし、電池の電圧低下による誤動作や、残量が分からないことによる運用トラブルを避けるためには、電圧監視の仕組みが必要になります。

Wio BG770Aは、省電力でセルラー通信を実現できる開発ボードであり、屋外や電源がない環境で使いたいと考えたときに、電池駆動は魅力的な選択肢です。しかし、電池切れの予測などを考えると、外部電源の電池の監視の仕組みが必要になります。

🔍 背景と課題

Wio BG770Aの電源は、USB Type-Cもしくは電源コネクタから供給可能です。今回は電池駆動を想定しているので、電源コネクタから供給します。電源コネクタからは、3.4V〜17Vと幅広い入力に対応しています。今回は、アルカリ電池の単3電池4本を想定しており、約6.0Vあたりとなります。

Wio BG770Aでは、USB Type-Cもしくは電源コネクタから供給された電力は、電源回路で3.3Vに降圧され、システム側で使用しています。そして、今回の回路構成では、外部から供給された電圧を取得する方法がないので、電池残量/電圧を取得するために、基板改造を行うことにしました。

🔧 使用する部材

10KΩ抵抗(1608サイズ)
42KΩ抵抗(1608サイズ)
ケーブル
※今回は、アルカリ電池の単3電池×4本を想定しています。

🖉 設計方針

  • 外部入力の電圧を分圧して、マイコン側で取得できるようにします。
  • 入力17Vを想定して、分圧後に3.3V以上にならないように抵抗の定数を決めます
  • 標準的に入手可能な抵抗値を選択します

🛠️ 回路図

Wio BG770Aの電源まわりの回路図は以下の通りです。
このあたりのどこかで電源を取るのが良さそうです。

image.png

次に、Wio BG770Aの基板を見てみます。
上記の回路図がちょうど以下の基板あたりですが、青い丸で囲った部分にちょうど良さそうなパッドがあります。テスターで確認すると、外部電源の電圧とGNDであることが確認できました。おそらく、回路図でのフューズF1の後段であると思われます。

image.png

さっそく、改造してみます。
抵抗の分圧回路は以下のようになります。今回は、R1に43KΩ、R2に10KΩを使用します。

image.png

実際に基板改造をします。
それぞれの抵抗の片側をパッドにはんだ付けします。これで、ほぼ抵抗は固定されます。この際に、抵抗のパッドに固定していない側がそれぞれ近くなるようにしておきます。
次に、抵抗の端が近くなっているところをはんだ付けして、ケーブルを接続します。これで、上記の抵抗の分圧回路が出来ました。

image.png

次に、分圧された電圧を読み取るポートに接続します。
今回は、基板改造のしやすさを優先して、「Grove-Digital」のコネクタに接続することにします。「Digital」で大丈夫なのか?と思う人もいると思いますが、「A6/A7」と書かれているように、こちらのピンはアナログピンとしても使用することができます。

image.png

念のために、マイコンのMDBT50Q-1MV2のデータシートも確認しましたが、問題ないです。

image.png

それでは、さきほどの分圧回路のケーブルの先を、「Grove-Digital」に接続します。今回は、D30/A6/P0.30に接続しました。これで、基板改造は完了です。

image.png

💻 ソフトウェア処理

次に、ソフトウェア上での処理の例を簡単に提示しておきます。

uint R1 = 42;
uint R2 = 10;
analogReadResolution(14);
float analogVoltage = (float)analogRead(A6) / 16383 * 0.6f / (1.0f / 6);
float sourceVoltage = (analogVoltage * (R1 + R2) / R2);  // 分圧による補正
Serial.println(sourceVoltage);

ADコンバータで読み出した値を正確な電圧に変換する計算式は、サンプルスケッチの「grove-rotary-angle-sensor.ino」を参考にしてもらうのが良いです。

  // Convert raw value to voltage
  //
  // Voltage = Value / Resolution * Reference voltage / Gain
  //   Resolution       : 16383 ... 14-bit resolution = 2^14-1
  //   Reference voltage: 0.6   ... Internal reference = 0.6V
  //   Gain             : 1/6   ... 1/6

サンプルスケッチには以下のコメントが書いてあります。ADコンバータは、基準電圧が0.6Vで、Gainが1/6となるようです。そのため、例にあるような式で正しい電池電圧を取得することが出来ます。

☁️ SORACOM での確認

Wio BG770A を使っているので、簡単にSORACOMに接続して、電池電圧を SORACOM Harvest Data で確認します。まだ、データが多くないので、電圧値はほぼ一定ですが、単3電池×4本の約6V付近であることが分かります。これで、遠隔で電池電圧/電池残量が分かるようになります。

image.png

おわりに

今回の改造では、極力コンパクトにすることを目指しました。
そのため、基板サイズなどはそのままでサイズ感としては従来のまま使用することが出来ます。一方で、電圧値をAD変換するピンは固定ではんだ付けしてあるので、もし対象のGroveコネクタなどを使用したい場合は、別のピンにはんだ付けする必要があります。

今回の改造で、電池駆動にした場合、電池電圧を読み取ることができ、電池残量を確認できるようになるので、屋外や電源確保が難しい環境などで、電池動作させる場合には有効になると思います。

image.png

参考リンク

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?