PR 記事には広告が含まれています
スポンサーリンク
Translate

ESP32を電池2本くらいで動作させるための電源回路(昇降圧DCDCコンバータ)を作りました

スポンサーリンク

TPS63001DCDCコンバータ回路

ESP32は3Vから3.3V程度で動作するマイコンです。電池2本くらいで動作させるために、DCDCコンバータ回路を作ろうと思います。

どのような回路かは、以前の記事をご覧ください。

スポンサーリンク

はんだ付け

TPS63001

Digikeyから注文していたDCDCコンバータICが届きました。

これが、ものすごく小さいんです。ICのピッチは0.5mmしかありません。このICに0.1mmのポリウレタン線を使って、配線を引き出して部品をつないでいきました。

数時間かけて、ようやくはんだ付けが完了しました。さて動くでしょうか。

電源で2Vから5Vくらいの間で入力電圧を変化させてみます。出力は常に3.28V程度と安定しています。正常に動作しているみたいです。

スポンサーリンク

レギュレータと交換

ESP32-DevkitCのレギュレータを取り外し、ここに先ほど作ったDCDCコンバータを接続しようと思います。

レギュレータの取り外しは、はんだごてでは困難なので、ホットエアーを使って部品を加熱し、取り外します。

YAOGONG SMDホットエアーガン リワークステーションデジタルリワークはんだ付けステーション 3 つノズル110V 700W(858D)
YAOGONG

はんだごてでは取れない、多ピンデバイスには、ホットエアーが超絶便利です。

簡単に取り外すことができました。

レギュレータの代わりに先ほど作ったDCDCコンバータを接続します。

スポンサーリンク

リブート祭りが発生

プログラムの書き込み

現在テストしている、歪ゲージを使ったはかりのプログラムで動作のテストをしてみます。電池はこれまで4本の4.8Vで使っていたのですが、DCDCコンバータが搭載されたので2本の2.4Vで動作させてみます。

ArduinoIDEからESP32へ、プログラムが正常に書き込むことができました。DCDCコンバータは今のところ正常に動作しています。

歪ゲージを使ったはかりのプログラムは、測った重量をAmbientのサーバへ送信しています。その際にWiFiに接続する必要があります。このWiFiに接続するタイミングで、マイコンがリブートしてしまうことが何回かに1回発生してしまいました。

ログを見てみると、電源電圧低下による内部リセットであることがわかりました。ESP32は無線LANの機能を使うと電力の消費が極端に増加するために、DCDCコンバータの供給能力を超えてしまっているのかもしれません。

出力にコンデンサの追加

とりあえず、ESP32の3.3Vピンに100uFのコンデンサを追加してみました。すると、WiFiに接続するタイミングで必ずリセットするようになり、悪化してしまいました。

電源電圧をオシロスコープで確認してみると、3Vを下回って2.5Vまで電圧が低下してしまっています。大きなコンデンサをDCDCコンバータの出力に接続すると、ESP32が大電力を必要な際にDCDCコンバータの動作が不安定になってしまうようです。

入力にコンデンサを追加

出力に取り付けた100uFを取り除き、今度はDCDCコンバータの入力に100uFのタンタルコンデンサ(オレンジ色の四角い部品)を追加してみました。さらに、電池の+の線をDCDCコンバータの+入力へ短い距離で接続してみました。

すると、リブートはなくなりました。オシロスコープで電源をモニターしてみましたが、オシロスコープのトリガーが引っかからなくなってしまった、電圧降下はほぼ無くなったのだと思います。

スポンサーリンク

電圧測定プログラムの変更

ESP32はかりのブロック図

今回の測定回路では、バッテリー電圧を1MΩ2個を使って半分の電圧に変換し、その値をA/Dして電池電圧をモニターしています。測定電圧の安定のため、A/D入力には0.1uFのコンデンサが入っています。これが無いと、A/Dする時にA/Dコンバータに内蔵された小さなコンデンサに電気を奪われるので、ちょっと低い値がA/Dされてしまいます。

これまで、A/D値から電圧へ変換のために、ネットにあった変換式を適当に選んで使っていたのですが、どうも値が合わないので、自分で測定して変換式を作りました。

A/Dに入力する電圧は、1MΩ2個を使って半分に分圧されています。その半分される前の電圧を0Vから6.5Vまで0.5Vステップで変化させ、A/D値を測定しました。その結果から、近似式を求め、A/D値から電圧を求める式を算出しました。と言ってもNumbersの近似式の機能を使っただけですが。

その結果、

  int battAD = analogRead(BATT_AD_PIN);
  double battVoltage = -7.399 * 0.00000001 * battAD * battAD + 0.0018 * battAD + 0.1788;

というプログラムで電圧値を得ることができるようになりました。

スポンサーリンク

しばらく測定してみる

充電電池2本で、しばらく歪ゲージ式はかりの測定結果をAmbientに記録してみました。

バッテリー電圧は2.6から2.5Vで安定しています。これはテスターで測った値と同じです。歪みゲージ式はかりも、屋内に置いてあるからか大きな変動はなく安定していますね。

スポンサーリンク

ついでに理想ダイオードも追加

電池とUSB電源を切り替える際に必要な、理想ダイオードも追加します。理想ダイオードに関してはこちらの記事をご覧ください。

これもとても小さいパッケージです。

これを、DCDCコンバータの入力に入れました。

スポンサーリンク

昇降圧DCDCが正常に動作しました

TPS63001DCDCコンバータ回路

電池2本くらいで動作するDCDCコンバータ式のESP32-DevkitCが正常に動作しました。WiFi使用時の大消費電力による電圧低下がちょっと不安ではありますが、基板化したら、改善するかもしれません。配線の抵抗やインダクタ成分って結構大きいですからね。

しかし、0.5mmピッチのICの配線がとても大変でした。

2021.4.5 追加 はかり内蔵郵便受けに使ってみました

追加終わり

2021.4.18 追加 違うICで再挑戦してみました。

追加終わり

2021.4.25 追加

結局、違うICは過負荷で止まってしまうので、このDCDCコンバータに戻ってきました。このDCDCコンバータの出力に1000uFの電解コンデンサを接続することで、2.6V程度まで動作することを確認しました。このため、メールで知らせる郵便受けは、このDCDCコンバータの回路と出力に1000uFのコンデンサで、現在は運用しています。

追加終わり

電池2,3本で動作するESP32-DevKitC互換機ができました👇👇!!