2012年3月14日
ここでは、太陽電池からニッケル水素電池に充電したり、ニッケル水素電池から負荷に放電したりを制御する回路を考えます。半導体素子に内蔵されたダイオードの存在を忘れていると、思わぬ誤動作をする可能性があるので、要注意です。
図:基板上のトランジスタやMOS-FETの様子
今回の工作では、太陽電池の電気を、負荷に供給したり、ニッケル水素電池の充電に使ったりします。
具体的に、どのような回路が必要か考えるために、各構成要素の役割を整理してみます。
太陽電池は、負荷に供給するときと、ニッケル水素電池を充電するときがあります。
ニッケル水素電池は、太陽電池から充電を行うときと、負荷に放電するときがあります。
負荷は、太陽電池またはニッケル水素電池から、電気を受け取って消費します。
ニッケル水素電池を2系統用意すると、以下のような回路をイメージできます。
図:回路のイメージ
回路にスイッチを設けるのは、充電や放電を常に続けるのではなく、必要に応じてつないだり外したりする制御が、以下の理由で必要だと考えるからです。
充電を無制限に続けると、ニッケル水素電池が過充電となり、寿命を縮めます。十分に充電したら、充電をやめる必要があります。
放電を無制限に行うと、ニッケル水素電池が過放電となり、やはり寿命を縮めます。電気を使い切りそうになったら、負荷から切り離す必要があります。
制御を行うと、ニッケル水素電池の残量を推定しやすくなります。蓄電量を見える化して楽しむためには、制御を行ったほうが面白そうです。
それぞれのスイッチには、次の役割があります。
番号 | 役割 |
---|---|
SW1 | 太陽電池から負荷に直接電気を送るかを制御します。 |
SW2 | 太陽電池の電気でAバンクのニッケル水素電池を充電するかを制御します。 |
SW3 | 太陽電池の電気でBバンクのニッケル水素電池を充電するかを制御します。 |
SW4 | Aバンクのニッケル水素電池の電気を負荷に送るかを制御します。 |
SW5 | Bバンクのニッケル水素電池の電気を負荷に送るかを制御します。 |
これから先は、上記のスイッチを半導体素子で実現し、PICマイコン(PIC16F886)で制御できるようにする方法を考えます。
スイッチに相当する機能は、PICマイコンのI/O端子を使って、オン・オフを制御したいと考えています。
PICマイコンのI/Oピンには、過電圧を保護するダイオードが内蔵されています。保護ダイオードの存在を知らずにいると、誤動作をまねく可能性があります。
太陽電池の電気を負荷に送るかどうかを、PICマイコンで制御する回路を考えます。
図では、フォトダイオードの図記号で示された太陽電池の電気を、PNPトランジスタを1つ使って制御しようとしています。
PICマイコンのI/OピンからL(低)を出力すると、PNPトランジスタがオンになり、太陽電池の電流が負荷に流れます。
PICマイコンからH(高)を出力すると、PNPトランジスタがオフになり、太陽電池の電流が負荷に流れなくなる、はずですが・・・。
図:PNPトランジスタ1個で失敗する回路例
実は、これだと失敗します。
PICマイコンのI/Oピンには、以下の図のように、保護ダイオードが内蔵されています。
図:マイコンに内蔵された保護ダイオード
保護ダイオードは、以下の働きをすることで、回路を過電圧から守っています。
I/Oピンにかかる電圧が、マイコンの電源電圧よりも高いときは、電流をマイコンの電源ピンに伝えます。
I/Oピンにかかる電圧が、マイコンのVss(通常は0V)よりも低いときは、電流をマイコンのVssに伝えます。
太陽電池の電圧がマイコンの電圧よりも高いときは、太陽電池からの電流は、トランジスタのエミッタ、ベースを通って抵抗器を抜け、PICマイコンのI/Oピンに入り、さらに保護ダイオードを通って4.8Vのニッケル水素電池に到達します。(PICマイコンのI/Oピンが出力状態のときは、電流の経路が変わりますが、I/Oピンに電流が流れ込むのを止めることは難しいです。)
太陽電池の定格電圧は8Vあります。4.8Vのニッケル水素電池よりも電圧が高いわけですから、保護ダイオードに電流が流れることは、仕方がないです。
このような状態になると、トランジスタが常にオンになり、負荷には常に電気が供給されてしまい、制御ができません。
さらに、マイコンに無理な電圧がかかり、壊れてしまう可能性があります。とくに、4.8Vのニッケル水素電池を外すと、電池が電流を吸収できなくなるため、無理な電圧が発生しやすくなります。
問題を解決するには、下図のように、NPNトランジスタを追加します。
NPNトランジスタを加えた以下の回路では、コレクタの電位がベースよりも高くても、コレクタからベースに電流が流れ込まないようにできるので、マイコンを過電圧から守ることができます。
図:NPNトランジスタを追加した回路
なお、追加したNPNトランジスタのベースとエミッタの間に、抵抗器をさらに入れると、マイコンのI/Oピンがハイ・インピーダンスになったときも、NPNトランジスタが確実にオフとなるので、さらに確実に動作する回路となります。
図:さらに抵抗器を追加した回路
この回路は、確実な動作が期待できますが、消費電流が大きい点が問題です。例えば、PNPトランジスタの直流電流増幅率(hFE)を100程度とし、負荷で200mAまで使いたい場合は、ベース電流として少なくとも2mAは消費することになります。
パワーMOS-FETは、ベース電流を流さなくても大きな電流を制御できるので、消費電力の少ない制御回路を作りたいときに便利な素子です。
MOS-FETに内蔵されているダイオードの機能に、十分気をつけた上で使う必要があります。
以下の図では、先ほどの回路で、PNPトランジスタをPチャンネルのMOS-FETに置き換え、少ない電流で太陽電池からの電流を制御できるようにした回路です。
図:PNPトランジスタをPchのMOS-FETに変更した回路
この回路では、ゲート端子には、ほとんど電流が流れません。ゲート・ソース間の抵抗器に流れる電流は、0.1mA未満となるので、PNPトランジスタを使っていたときと比べ、大幅な節電を実現できます。
上記の回路を使い、2つのニッケル水素電池のバンクに、充電と放電ができるようにします。
以下の回路でよいでしょうか?なお、MOS-FETのゲートにつなぐ回路は省略しています。
図:MOS-FETによる充放電制御回路の失敗例
実は、これだとまた、問題が起こります。MOS-FETが含んでいるダイオードの性質が、悪さをするのです。
まず、ニッケル水素電池のバンクA(BattA)もバンクB(BattB)も、放電しきって電圧が低くなっているときに、問題が生じます。
ニッケル水素電池を使い切っているときは、太陽電池が発電している間は、まずは太陽電池で直接負荷を駆動し、余裕があれば充電も行いたいと考えます。
太陽電池と負荷は、回路図の一番上に書いてあるダイオードでつながれているので、太陽電池からの電流は、ダイオードを通って負荷へ向かいます。
ところがこの回路では、太陽電池から負荷に送ったはずの電流が、FET2, FET4に内蔵されたダイオードを通じて、BattA, BattBに流れ込んでしまうので、負荷の電圧が十分に上がらない可能性があります。
次に、暗くなり、太陽電池の電圧が下がると、さらに困ったことになります。
BattA, BattBのニッケル水素電池から、FET1, FET3に内蔵されたダイオードを通じて、太陽電池に電流が流れ込む可能性があります。
起電力のない太陽電池は、ダイオードに近い性質を示します。ニッケル水素電池の電流が流れ込むと、電流を無駄に消費したり、異常な電流により太陽電池を破損したりする可能性があります。
上記の問題は、逆流を阻止するダイオードを挿入して、回路を以下のようにすれば、解決できます。
今回実際に製作する回路は、以下の構成になっています。
図:MOS-FETの制御回路に逆流を素子するダイオードを挿入した、今回製作する形
電流は、回路図の左から右にだけ流れます。右から左への流れは、ダイオードにより阻止されます。
ただし、左から右へダイオードを1個通過するたびに、電圧降下があるので、損失が発生します。
ダイオードはFETと比べ、オンになっているときの電圧降下が大きいです。
電圧降下によるエネルギーの無駄を減らすためには、以下のような回路も検討する価値があります。
図:MOS-FETを2個組み合わせた回路例
この回路は、NPNトランジスタがオフになっていれば、INとOUTの間で、どちら向きにも電流はほとんど流れません。
左から右への電流を阻止するMOS-FETと、右から左への電流を阻止するMOS-FETを組み合わせているからです。
逆に、NPNトランジスタをオンにすると、MOS-FETが2個ともオンとなり、小さい電圧降下で左右両方向に電流を流せます。
この回路は、オンにしたときの電圧降下が小さく、エネルギーの無駄を減らせそうですが、うっかりすると意図しない方向に電流が流れたり、部品数が多く回路が複雑だったりするので、常におすすめできるものではありません。
今回の工作では、多少の電圧降下は覚悟して、3.2.節で紹介した、MOS-FETとダイオードを組み合わせた回路を使うことにしました。
今回の工作で使う太陽電池も、ダイオードの仲間です。
図:太陽電池のモジュール
ダイオード1個分の等価回路は、こんな感じです。この回路1つで約0.5Vを起こせます。
図:太陽電池の等価回路
この回路を4つ直列につなぐと、写真に示す1枚のモジュールになります。約2Vが得られます。
今回の工作では、このモジュールを4個直列につないで、8Vを得ようとしています。
等価回路から、太陽電池の性質が分かります。
電流源の部分は、光によって発生する電流です。明るいほど多くの電流を作れます。
ダイオードの部分は、発生した電流を外部の回路で使わないと、電気を内部で消費してしまいます。外部に電流を取り出すときは、電圧はダイオードの順方向電圧よりも高くならないようになっています。
太陽電池を外部の回路とつなぐと、こんな問題が起きる可能性があります。
太陽電池よりも高い電圧と並列につなぐと、電流がダイオードに流れ込みます。あまり多く流れ込むと、発熱して破損してしまいそうです。
図:電流が逆流する?
逆流しないように、ダイオードを外付けすれば、問題は解消します。ただし、ダイオードにより、太陽電池1セル分の電圧が降下してしまう点が残念です。
太陽電池をいくつか直列につなぎ、逆流防止のダイオードは1個だけ接続します。太陽電池が1つだけでは、逆流防止用のダイオードによる電圧降下の大きさが、太陽電池の起電力をほぼ全て打ち消してしまうからです。
図:ダイオードで逆流を阻止
逆方向の電圧をかけて使うと、負電圧がかかった状態で電流が流れる場合があります。
図:逆電圧がかかる場合
まるでフォトダイオードとして使っているみたいですが、負電圧により等価回路の電流源の部分でエネルギーを消費するので、かかっている電圧や流れる電流の大きさによっては、太陽電池を破損する原因となるようです。
太陽電池を多数直列につないだ状態で、各モジュールに当たる光の強さがばらついているときに、この問題が発生する可能性があります。
逆電圧がモジュールを避けて通るように、ダイオードを外付けすれば、問題を解消できます。
図:ダイオードで逆電圧の問題を解消
このように、太陽電池を使うときは、電流の逆流を防いだり、逆電圧をかかりにくくしたりする必要があります。
太陽電池モジュールを4個直列につなぎ、定格8Vの太陽電池として使うときは、以下の図のように、モジュールごとにダイオードを並列に挿入して、大きな逆電圧がモジュールにかからないようにしました。
さらに、逆流防止のために、ダイオードを1つ直列につなぎました。
図:モジュールを4個直列につなぐ回路の例
ちなみに、実験中に太陽電池のリード線が1本外れてしまいました。
回路図でいえば、太陽電池の図記号の直近の線が切れたイメージです。
モジュール1つ分の電気は止まりましたが、ダイオードのおかげで、残り3個分の電圧だけは残りました。ただし、ニッケル水素電池への充電電流は、電圧不足となり止まってしまいました。
以下の写真は、リード線が外れた太陽電池モジュールの裏面です。根元からぽろりと外れています。
図:太陽電池モジュールの裏側
次に、回路図を考えて、組み立てました。
回路の写真と回路図を示します。回路図は、後のページで説明する機能が全て入った状態のものです。これまでに説明していない機能については、別の機会に紹介します。
図:回路の写真
図:回路図
フォトダイオードのような図記号を4個直列につないであるのが、太陽電池です。定格値として8Vの電圧が、「VP」の端子に供給されます。
組み立てた基板の写真を、以下に示します。
図:ハードの様子
基板にマイコンとスーパーキャパシタ、液晶モニタ、電力の制御回路などが乗っています。
右下には、太陽電池やニッケル水素電池をつなぐためのコネクタが並んでいます。
上のほうにある黄色いボタンは、マイコンのリセットボタンです。
部品の配置図は、こちらです。
図:部品の配置図
手書きできれいではありませんが、配線がぐるりと回るようにはりめぐらされている様子が見えます。ずすめっき銅線だけで配線を行い、リード線によるジャンパは使っていません。
配線をもう少し短くできるとよいのですが、パズルのようで難しいです。パソコン上で簡単に描ければ、うまい配置を見つけられそうな気もします。いいソフトがほしいな。
ちなみに、配置図にはボツになった回路の部品も書いてあります。上のほうの写真をよく見ると、それらの部品が、基板につけたままになっている様子が分かります。
回路の各部を計測して、電圧のかかり具合などを確認してみました。
ニッケル水素電池はBattAだけを接続しました。BattBは接続していません。
計測するときは、信号"AC"をオン(ハイレベル)にしています。トランジスタTr1がオン、FET1がオンとなり、太陽電池からの電流がダイオードD6を通って、ニッケル水素電池BattAに充電されます。充電電流はR13を通るので、R13の電圧を測れば充電電流の大きさを推定できます。
計測の結果は、以下のとおりです。
R13の電圧は、136mVでした。BattAの充電電流は、約267mAと推定できます。
このとき、FET1のソース・ドレイン間の電圧降下は35mVでした。FET1は0.13オーム相当の抵抗器として機能していることになります。
ダイオードD6の電圧降下は、374mVでした。「ショットキーバリアダイオード」を使っているため、通常のダイオードよりは低い電圧降下ですが、それでもFET1の10倍以上降下しています。
太陽電池の電圧は、7.07Vでした。
ダイオードの電圧降下は、MOS-FETの10倍以上あります。電圧降下を小さくするためには、ダイオードをMOS-FETに置き換えることも検討に値するかもしれません。
制御回路のほかの部分の電圧も測ってみました。
FET1のゲート・ソース間の電圧は6.62Vでした。十分大きな値なので、ソース・ドレイン間の抵抗値が低くなったと考えられます。
ゲート・ソース間には100キロオームの抵抗器R11がついています。この抵抗器は、太陽電池からの電流を、0.07mA程度グラウンド側に流していることになります。
トランジスタTr1のコレクタ・エミッタ間の電圧は9mVでした。ほとんど完全にオンになっています。
トランジスタTr1のベース・エミッタ間の電圧は0.659Vでした。ベースにつながれた47キロオームの抵抗器R12での、電圧降下は4.35Vでした。ベース電流としてマイコンの回路から0.09mA程度消費していることになります。
マイコンの電源電圧は、5.01Vでした。電源IC「XC6202P502TB」により、太陽電池の電圧が安定化されています。
このように、MOS-FETとトランジスタからなる制御回路は、約0.16mAの電流を消費し、約0.4Vの電圧降下を伴いながら、太陽電池の電気をニッケル水素電池に伝えています。(制御回路にはほかに、マイコンや液晶モジュールがあるので、さらに多くの電流を消費しています。)
ちなみに、太陽電池の電圧は、取り出す電流の大きさにより変動します。
ニッケル水素電池BattAを取り外したところ、太陽電池の電圧は9.35Vまで上昇しました。
ニッケル水素電池に充電電流を流すと7.07Vとなるので、2.28Vの電圧降下が発生しています。
太陽電池は、取り出す電流の大きさにより、電圧が変わるので、取り出せるエネルギーの大きさも変わります。今回の実験では、太陽電池とニッケル水素電池が、ほぼ直結されており、制御ができませんが、取り出す電流の大きさを上手に制御すると、もっと大きなエネルギーが取り出せる可能性もあります。
太陽電池から取り出す電流の大きさを調整して、取り出すエネルギーを最大にする制御は、MPPT制御と呼ばれます。興味深い分野なので、いつかチャレンジしてみたいです。
ここでは、太陽電池とニッケル水素電池、負荷との間の回路を、つないだり離したりするための、制御回路を設計しました。
回路は、MOS-FETとバイポーラトランジスタを組み合わせた形を基本とし、逆流防止のダイオードを組み合わせて用いました。
太陽電池とニッケル水素電池、負荷の接続関係を以下の図に示します。電流は、左から右への一方通行となります。
図:今回製作する制御回路の形
また、太陽電池には逆電流をバイパスするダイオードをつけ、ストレスのかかりにくい回路構成としました。
さらに、回路を設計する上で、以下の知見を得ることができました。
PICマイコンのI/Oピンには、保護ダイオードが内蔵されている。存在を知らずに高い電圧をかけると、電流が保護ダイオードに流れ、異常な動作となる可能性がある。
トランジスタ等を外付けすることで、問題を解決できる。
MOS-FETは、逆方向はダイオードの働きをする。PチャンネルのMOS-FETの場合は、ドレインからソースへ向かう電流は止められないので、知らずにいると電流が思わぬ流れ方をする可能性がある。
ダイオードや、別のMOS-FETを追加することで、逆方向の電流を阻止する回路を構成できる。
太陽電池は、ダイオードと電流源を組み合わせた特性を持っている。起電力よりも大きな電圧をかけたり、逆電圧をかけたりすると、太陽電池内で電力が無駄に消費される。太陽電池を破損する可能性もある。
外付けダイオードの追加で問題を解消できる。
太陽電池の電流を制御する回路は、電圧降下が小さく、消費電流が少ないものがよい。ただし、太陽電池から取り出す電流の大きさにより、太陽電池から取り出せる電力の大きさが変化するので、さらに効率を高めるためには、MPPT制御に取り組む必要がある。
ちなみに、このページの最初に示した「回路のイメージ」にある「直接放電 SW1」は、今回の工作ではダイオードとしました。従って、オフとする機能はありません。
太陽電池が発電しているときは、太陽電池から負荷を直接駆動したほうが、太陽電池の電気をいったんニッケル水素電池に蓄え、蓄えた電気で負荷を駆動するよりも、効率がよいです。従って、太陽電池が発電できるときには、常に太陽電池から直接負荷に供給を行うことにしたので、マイコンから制御を行う必要がないからです。
太陽電池の電圧がニッケル水素電池の電圧よりも高いときは、「回路のイメージ」のSW4またはSW5がオンになり、ニッケル水素電池から放電する制御が行われていても、ニッケル水素電池の放電を抑えて、太陽電池から優先的に電流を負荷へ供給できます。
太陽電池が発電していないときは、SW1のダイオードに電流が流れないだけで、問題は起こりません。
SW1のダイオード化は、バックアップの意味もあります。万が一マイコンが機能しなくなっても、太陽電池が発電できれば、制御とは無関係に負荷を駆動できます。
次の記事:液晶モジュール (SC1602)の制御ソフトを作る
手前の記事:太陽電池とニッケル水素電池で電気を自給自足したい--企画を立てる
トップページ→ちょっとだけ電子工作(もくじ)→太陽電池からの電流を制御する回路の製作--ダイオードに要注意
著者のメールアドレスは、トップページからご覧ください。
製作・著作:杉原 俊雄(すぎはら としお)
(c)2012 Toshio Sugihara. All rights reserved.