電流計付きUSB電源アダプターを作る
収集癖・・・
私の住んでいる地域で電子部品を調達するにはネット通販を利用するのが一般的だと思われます。
よくお世話になっている「秋月電子通商」(以下、秋月)の場合、1回の注文毎に500円(2014年2月時点)の送料が発生するのでタクトスイッチを1個だけ発注するような事はしません。
部品1点あたりの送料を薄める目的で、いつか使うかもしれない部品を注文していたら「ホントにいつ使うの?」みたいな部品コレクションが出来上がっていました。
そろそろ部品コレクションを処分しなければ保管場所に困ってしまいます。何か形にしておかなければ・・・
部品をピックアップした結果・・・
「WOL Bridge」を作る」でまとめ買いしていた液晶モジュールです。
なんとなく使うのが勿体ないと思ってコレクション化されていました。
「夜間非常灯コントローラー」を製作したときに購入しましたが未使用に終わりました。
このモジュールはDC/DCコンバータとインダクタと放熱器が一体となっていて簡単に5V/3A(15W)の電源として使う事ができます。
最近の製品と比べると効率(約80%)が見劣りしますが、有名メーカー(新電元工業株式会社)の製品ということもあり信頼性は高そうです。
普段私が遊んでいるAVRの回路は、ここまで大きな電力は必要としませんので出番が無いままコレクション化されていました。
販売ページの説明にあるように電流検出用に購入したのだと思いますが、購入したことすら忘れていました。
恥ずかしながらオペアンプを使った事がありません。では何で購入したんでしょうね?
「イマジナルショート?」「入力オフセット?」「レールtoレール?」。何かの呪文でしょうか・・・
「AVRライター」を製作した際に一緒に購入したのですが一度も使われる事はありませんでした。
ちょっとした電子工作には欠かせないお気に入りのマイコンです。
これらの部品から単純に想像できる電子工作といえば計測機能付きのUSB給電器でしょう。
市販品を組み合わせたほうが自作するより低コストで済んでしまうのですが、それはそれと言うことで・・・
下記の商品は楽天アフィリエイトからリンクしております
|
|
|
|
「DN-84360」を購入したのですが3A付近まで電流を流すと本体の発熱が大きくコイルからと思われる異音が聞こえます。
1ポートのみ使用していれば全く問題は無いのですが、折角の2ポート出力が勿体ない気がします。
|
とにかく作ってみました・・・
|
|
|
部品面
最初から両面基板でデザインしました
|
ハンダ面
表面実装部品はこちらに配置しました
|
試運転中
Nexus7(2013)を充電中
|
仕様(仮)
- 2ポート同時給電
- 各ポートの最大出力電流値3A(合計6A)
- 各ポートの機器接続/未接続を感知してDC/DCの動作を制御
- 過負荷(オーバーロード)を感知するとポート単位でシャットダウンするソフトウエアブレーカー
- 入力電源:DC9V~24Vまで対応
- 各ポートの給電情報(電圧値・電流値)をリアルタイム表示
理想と現実・・・~その1~
給電機能は問題無く動作してくれたのですが、電流測定値が理論値とかけ離れた状態で表示されてしまいます。
本機は電流測定に0.01Ωのシャント抵抗を使用したロー・サイド測定を行っており、シャント抵抗に発生した電圧降下を測定して電流値を計算します。
どうせ計算方法を間違ったんだろうと楽観視していたのですが、実はもっと深い部分に原因がありました。
左の回路図は本機で採用している電流測定部の回路図です。
シャント抵抗で発生した電圧降下をオペアンプで増幅してマイコンのA/D変換ポートに入力するという、極めてシンプルな回路です。
AVRのA/D変換器のリファレンス電圧を5.0Vに設定した場合の分解能は
5.0V÷10Bit(1024段)≒0.005V
最大電流の3Aがシャント抵抗に流れたときにシャント抵抗に発生する電圧降下は
0.01Ω×3A=0.03V
これをA/D変換すると
0.03V÷0.005V=6LSB
となります。
このままですと0.5A単位でしか電流を測定できないことになり、あまり実用的ではありません。
オペアンプを使ってシャント抵抗で発生した電圧(0.03V)を166倍して4.8Vまで増幅することで3mA単位での測定が可能になる筈です。
オペアンプ経験者ならこんな失敗はしないのでしょうが、オペアンプ初心者の私は初歩的なミスに気づくまで1週間以上悩んでしまいました。
マルツパーツ館のページにある「オペアンプの選び方・使い分け」~単電源オペアンプの動作と特長~を読むまで全く気にも止めなかった部分です。
最大出力電圧3.5V(5V駆動時)の「LM358N」は、4.8Vの出力電圧を期待した回路では動作しないのです。
フルスイング可能なレールtoレールタイプのオペアンプを使えば問題は解消しそうですが、今回は追加購入を行わない方針なので回路の定数を見直すことで対応します。
シャント抵抗に3Aの電流が流れた時にオペアンプの出力電圧が2.78Vになるように設定しました。
(220KΩ+2.4KΩ)÷2.4KΩ≒92.67倍
0.03V×92.67≒2.78V
これをA/D変換すると
2.78V×1024(10bit)÷5.0V≒569LSB
3A÷569LSB≒5.3mA
約5.3mA単位での電流測定が可能となります。もう少し倍率を上げて分解能を上げたいのですが、手持ちの抵抗器ではこの組み合わせが最良でした。
理想と現実・・・~その2~
オペアンプの入力電圧が0Vの時、出力電圧は当然0Vです。しかし実際に出力電圧を測定してみると0Vにはなりません。
「LM358N」のパッケージには2個のオペアンプ回路が入っています。
それぞれの出力電圧を測定してみると「0.12V」「0.06V」でした。同じパッケージ内の回路なのに結構な差異があります。
電流値に換算すると「0.13A」「0.06A」。実際にシャント抵抗に電流が流れていないのに電圧降下が発生しているように見えるのです。
またまたマルツパーツ館のページにある「オペアンプの選び方・使い分け」~用語解説『オフセット電圧』~で勉強させて頂きました。
これがオフセット電圧というもので、「LM358N」のデータシートを確認すると最大で0.007Vもの入力オフセット電圧が生じる場合があることがわかりました。
入力オフセット電圧は増幅されて出力オフセット電圧として出力されます。
本機の場合は最大で
92.67倍×0.007V≒0.65V
電流値にして
0.007V÷0.01Ω=0.7A
の誤差が生じる可能性があるということです。これは到底無視できるレベルではありませんのでソフト側でオフセット値を相殺して計算します。
低オフセットタイプのオペアンプを使えば解消しそうな問題なんですけどね・・・。
理想と現実・・・~その3~
「理想と現実・・・~その1~」の電流測定回路をプリント基板にしたのが左の画像です。
配線に間違いは無いのですが、シャント抵抗の電圧降下を測定するにはお粗末なパターンだったようです。
本来はシャント抵抗の根元の部分に測定用のパターンを用意します。しかし、私が作ったパターンではシャント抵抗から離れた位置に測定用のパターンを用意しています。
図中の紫色の○印の部分の電位差を測定しているつもりが、実際には赤○印の電位差を測定していたのです。
本機はシャント抵抗に0.01Ωの低抵抗を使用しているのでプリントパターンの抵抗成分の影響を大きく受けてしまいます。
これではシャント抵抗の他にプリントパターンの抵抗成分を含めた電圧降下を測定することになり、期待した電圧よりも大きな値が測定されます。
続、とにかく作ってみました・・・
いかに自分が無知なのかを思い知らされた新年早々の電子工作。
基板を作り直す気力が湧かず、Seeed Studioのプリント基板製造サービスFusion PCBを利用してしまいました。
追加購入無しという方針は何処行ったのやら・・・
春節直前のオーダーなので納期は1ヶ月くらいを覚悟していたのですが10日間で届き、バレンタインデーが近い為なのかベニア板で作ったキーホルダーのようなオマケが入っていたのが印象的でした。
基板が届いたところで一気に部品を実装してケースに組み込みました。
過去に失敗したプリント基板が溜まってきたので、今回はこのプリント基板を塗装してLアングルでつなぎ合わせてコの字型ケースとして再生してみました。
|
|
|
|
部品面
試作では電解コンデンサはハンダ面に実装していましたが、2作目では部品面に移動しました
|
ハンダ面
試作基板同様、チップ部品が実装されています
|
フロント&トップパネル
トップパネルにはLCDとLED付押しボタンスイッチ×2が取り付けられています
|
フロントパネル
USB給電ポートの角穴が2つあります
|
|
|
|
|
リア部
パネルは無く中身が丸見えです。
|
サイド部
ここもパネルは無く中身が丸見えです。
|
iPhoneとxperiaを同時に充電している様子
|
過負荷を感知すると出力がカットされて警告ランプが点灯します。
|
測定精度・・・
基準となる計測器がハンディテスターというのが悲しいですが、本機の測定値と比較してみました。
電圧・電流値共に誤差は3%以内に収まり、個人的に満足できる結果となりホッとしました。
仕様・・・
- 2ポート同時給電(最大3A×2)
- 各ポートの機器接続/未接続を感知してDC/DCの動作を制御
- 入力電源:DC9V~24Vまで対応
- オペアンプ入力オフセット値自動補正
- 過負荷(3.1A以上)を感知するとポート毎に出力をカットするソフトウエアブレーカー
- 一定の電流値(デフォルト2.5A以上)を感知するとポート毎にLEDを点滅させて警告【2014.02.10追加】
- 各ポートの給電情報(電圧値・電流値)をリアルタイム表示
電圧測定分解能:
約0.02V(表示 0.00~5.99V)
電流測定分解能:
1.1A未満 約1.16mA(表示 0~1099mA)
1.1A以上 約5.27mA(表示 1.10~3.99A)
A/Dコンバーターのリファレンス電圧を切り替えることで2つの測定レンジを実現
おしまいに・・・
正月休み中の暇つぶしにと思って安易に企画した電子工作ですが、ここまで苦戦するなんて全くの想定外でした。
本機の製作で挫折しそうになっていたときに友人からメールで、
「最近はスマホとかUSB充電が当たり前だし、マザーもそれ用に端子用意して負荷に耐えるようにしてたりなんで、こういう監視デバイス需要あるかもよ?」
と、モチベーションが上がる言葉を頂き、ようやくここまでたどり着くことが出来ました。(感謝)
オペアンプを使った初の工作でしたが マルツパーツ館の情報には本当に助けられました。(感謝)
たまにはマルツパーツ館から部品を購入しないとバチが当たりますね。
今回使用した基板取付用USBコネクタ(Aタイプ、メス)の最大電流値をデータシートから読み取ることができないのですが3Aの電流を流すことは規格外だと思われます。
大電流に対応したUSBコネクタの入手方法をご存じの方は掲示板で教えて頂けると嬉しいです。
この記事を元に製作される奇特な方は自己責任でお願い致します。当方は一切の責任を負いかねます。