更新:2007年1月25日
作成: 2006年8月2日
太陽電池とニッケル水素電池を組み合わせて、昼夜鳴り続けるラジオを作る計画「ノンストップソーラーラジオ計画」を進めています。今回は、回路図を考え、ハードウエアを組み立てました。
今回作る作品で制御するのは、充電と放電です。3系統ある充電式電池に充電しつつ、負荷に電気を供給します。
回路の機能は、模式図として書くと、次のようになります。
太陽電池から充電式電池へ向けては、充電制御スイッチが3つあります。充電すべきバンクを選んで、充電を行います。
負荷へ向けては、放電制御スイッチが4つあります。
このうち3つで、放電する充電式電池を選びます。
残りの1つは、太陽電池と負荷を直接つないでいます。太陽電池の電圧が十分に高いときは、太陽電池から負荷に直接電気を送ったほうが、効率がよいです。
太陽電池の電圧を計測します。充電や直接負荷につないでの利用が可能かを判断するためです。スイッチにパワートランジスタを使っているので、スイッチをオンにしている間は電流を消費するのですが、太陽電池が発電していないときは、オンにしていると電気がもったいないので、ときどき太陽電池の電圧を測って、オンにする必要があるかを判断します。
負荷の電圧を計測します。電圧が下がってきたら、放電中のバンクは電池切れになっています。充電式電池がからっぽになったかを判断するために使います。
充電電流を計測します。充電中のバンクでは、充電電流を常に調べ、電池の容量がいっぱいになる量だけ電流が流れたら充電を終了します。
今回製作した回路の回路図は、次のとおりです。画面からはみだして表示されるかもしれませんが、ご了承ください。
回路には、こんな特徴があります。
制御には、PICマイコンのPIC16F88を使っています。10bitの分解能を持つADコンバータを7入力持っており、アナログ量を扱いつつ、デジタルな制御を行う用途に適しています。
内蔵RCオシレータを用いることで、クロック周波数を31.25kHz程度としています。実際には、少し速く動くように調整して、32kHz程度で使うつもりです。
太陽電池は、公称で8V0.5Aです。公称値は理想的に明るいときのことなので、実際には、もう少し小さな出力となることでしょう。
充電式電池は、単3形エネループ4本を直列つなぎにしたバンクを、3つ用意しています。電流を測るために、2オームの抵抗を直列につないでいます。50mAの電流で0.1V、500mAの電流で1.0V電圧降下が起こります。この電圧降下をADコンバータで読み取り、電流の値を求めます。
スイッチの機能は、PNPトランジスタ2SA966で実現しています。ベース電流を制御する目的で、2SC1815GRを多数配置しています。単体のトランジスタが14石もあるマイコン回路は、珍しいかもしれません。
PICマイコンを駆動するために、低ドロップの5V出力のレギュレータを入れてあります。マイコンの電源は、太陽電池・充電式電池・負荷側のスーパーキャパシタから得られるようになっています。
晴れているときは太陽電池を通じて5Vの出力が得られるかもしれませんが、充電式電池を使っているときは、出力電圧が少し下がるかもしれません。マイコンそのものは、2Vを下回ってもしぶとく動き続けるようです。
負荷を駆動するために、低ドロップの3.3V出力のレギュレータを入れてあります。太陽電池の電圧は8V、充電式電池の電圧は4.8Vで、天気や充電の状態により大きく変わりますが、ラジオの電源電圧は3Vなので、負荷に合わせて降圧します。
この3.3Vの出力電圧を、ADコンバータの基準電圧として使います。マイコンの電圧である5Vの回路は、充電式電池の電圧である4.8ボルトよりも高いので、いつも5Vが得られるとは限りません。3.3Vのほうが、本来の3.3Vの値で一定に保てる可能性が高いので、基準として使うのです。
3.3Vの電圧は、放電をやめたり、充電式電池の電圧が大きく下がってしまったりすると、やはり一定には保てず、低下します。基準となる電圧が変化すると、電圧を測ったときに、全ての電圧が変わって見えてしまいます。
このため、3.3Vの基準電圧そのものが下がったことに、マイコン自身が気が付くための仕組みが必要です。このことは、後で詳しく説明します。
大きな電気2重層コンデンサが2つあります。1Fくらいの容量がほしかったからです。1Fあると、電圧が1V下がるまでに1Aの電流を1秒間流せます。負荷が50mAであれば、1V下がるまでに20秒間持ちます。マイコンが放電するバンクを切り替えるときなどに、負荷やマイコンの電源がなくならないようにするために、つけてあります。
基板本体を猛烈に時間をかけて組み立てたところ、次のようにできあがりました。
電気二重層コンデンサが、とても目立ちます。11Vで0.47Fの品物は、こんなに大きいのです。ひとつ100円でした。
太陽電池や負荷との接続は、ACアダプタなどでよく使われるコネクタで行います。
充電式電池との接続は、リード線接続用のターミナルを通じて行います。右下に見える緑色の四角いボックスですが、なかなか便利なコネクタです。
充電・放電に使うトランジスタは、なるべく整然と並べるようにしました。基板をぐるっと回るように、回路が組まれています。
黄色いリセットスイッチが、緑色のリード線の山に埋まってしまいました。
ちなみに、製作当初は、配線に使ったリード線が太すぎて、芋虫の大群みたいになってしまいました。
もう少し細いリード線を、必要最低限の長さに切って使うように改造して、現在の基板ができあがりました。
回路図も、当初の物から何度か改良しています。
部品の配置図をこちらのリンク先に用意しました。充電式電池が3バンクあるので、なにかと部品の数が多く、あれこれ詰め込んだ配置になっています。
この作品では、充放電や太陽電池の状況を調べるために、アナログ量を計測すべき場面がいくつかあります。
充電電流は、充電電流が流れる回路に、直列につないだ抵抗器2オームの両端の電圧をはかって調べます。
電流(A) = 電圧(V) / 抵抗(オーム)
なので、得られた電圧を2で割れば、電流値が得られます。
3.3Vが基準値となる場合は、PICマイコンのADコンバータの分解能は10bitなので、
電流計測としての分解能は1.61mAとなります。電流が小さいときは、ADコンバータの下のほうのbitしか使われず、誤差が大きくなるのですが、充電電流は多少誤差があっても実用上の問題は小さいと思われるので、これでよいとします。
具体的な誤差の様子を測れると面白いと思います。
2オームの抵抗は、充電式電池から放電するときは、ADコンバータにマイナスの電圧を送ります。ただし、負荷の大きさを50mAくらいと考えているので0.1V程度が予想され、マイコンを壊すことにはならないと思います。
実際にはスーパーキャパシタを充電するときに、やや大きな電流が流れますが、マイコンのADコンバータがあるピンの手前に4.7キロオームの抵抗器をつけているので、マイコン内部の保護ダイオードが働けば、故障にはつながらないと思います。
負荷に送る電気の電圧を測る部分です。3.3Vに平滑化する前の電圧で、放電中の充電式電池や太陽電池の電圧を反映した値になります。主に、充電式電池がからっぽになったかを判定するために用います。
「BATTOUT」の部分そのものは、充電式電池の放電であれば5V程度、太陽電池からの放電であれば8V程度まで上がる可能性があります。そのままでは、マイコンの電源電圧を超える可能性があるので、4.7キロオームの抵抗を2本使って、半分に分圧しています。
充電式電池から放電しているときは、BATTOUTでの電圧が3.9V程度になったら、そろそろ電気がからっぽになったと判断します。計測される電圧としては、1.95V程度がしきい値となります。
BATTOUTには、スーパーキャパシタがつながっているので、電圧の変化はゆっくりしたものとなります。
太陽電池の電圧も、計測しています。最大で9Vくらいまで上がる可能性があるので、4.7キロオームの抵抗器を3本使って、3分の1に降圧してから計測しています。
計測された値は、例えば、太陽電池の電圧が高いにもかかわらず充電電流が全く流れなくなってしまったときに、充電式電池が外れてしまったと判断するときなどに、使われます。
電圧を計測するためには、基準となる電圧源が必要です。PICマイコン内蔵のADコンバータでは、基準となる電圧を端子から与えて、測りたい電圧を、基準となる電圧に対する比の値として求めます。
太陽電池を使った回路では、電圧が一定しないことも多いので、電圧の基準値を決めるときにもいろいろと考えるべきことがあります。
平常時は、TA48033Sの出力端子から得られる3.3Vの電圧を基準値とします。充電式電池や太陽電池の電圧が十分高いときは、3.3Vに安定化された出力が得られ、定電圧源として利用できます。
ところが、充電式電池を使いきるなどして、電圧が低下してくると、3.3Vの出力が得られなくなり、電圧が低下してきます。電池切れによる電圧低下は避けられませんが、電圧が低下したことに、マイコンが気づくことが大切です。
電圧の低下を検出するときは、いくつかの方法を組み合わせて行います。マイコンの電源電圧VDDや、TA48033Sの出力電圧を基準として、あちこちの電圧をはかっていきます。
1つのバンクの充電式電池から、マイコンの電源(VDD)と3.3V端子の出力の両方に放電しているときは、3.3V電圧の低下は、PICマイコンの電源電圧であるXC6202P502TBの出力(普段は5V)と、TA48033Sの出力(普段は3.3V)を比べることで分かります。
TA48033Sの入力端子は、充電式電池からトランジスタのエミッタ・コレクタを1段通ったところにあります。エミッタ・コレクタ間の電圧降下は、ベース電流が十分流れていればわずかです。
TA48033Sは、入力電圧が3.3Vと比べ小さくなると、入力電圧よりも若干低い電圧を出力できるので、充電式電池の電圧が下がったときの電圧降下はわずかです。
XC6202P502TBの入力端子は、充電式電池からダイオードのアノード・カソードを1段通ったところにあります。ダイオードでは、必ず電圧降下が発生します。ショットキーバリアダイオードなので、降下は0.4ボルトから0.5ボルトとなるようです。この降下は、トランジスタのエミッタ・コレクタ間の降下よりも大きいです。
XC6202P502TBも、入力電圧が5Vと比べ小さくなると、入力電圧よりも若干低い電圧を出力できるので、充電式電池の電圧が下がったときの電圧降下はわずかです。
ふたつを比べると、模式的に次のように書くことができます。
充電式電池の電圧が3.3V付近以下となると、TA48033Sからの出力電圧が、XC6202P502TBの出力電圧以上になると予想されます。
したがって、2つの電圧を比較して、TA48033Sからの出力がXC6202P502TBの出力電圧以上になったときに、充電式電池の電圧と、マイコンの電源電圧が著しく低下したと判断できます。この状態では、TA48033Sからの出力である、電圧の基準値は3.3Vよりも低くなっている可能性があります。
このような状態になったら、どのバンクも電池切れになっていると考えられるので、充電式電池からの放電をやめたほうが安全かもしれません。
充電式電池を使いきったことは、「BATTOUT」の電圧が3.9ボルト程度まで下がったことにより分かるので、多くの場合、マイコンの電源電圧がTA48033Sからの出力を下回るまで充電式電池を使いきらなくても、放電の終了を察知できると思われます。
回路図には、単体のトランジスタが多数あります。充電制御スイッチと放電制御スイッチの役割をするのですが、いずれも2SC1815GRと2SA966を1つずつ組にして使っています。
トランジスタでは、ベース電流を十分たくさん流すと、エミッタ・コレクタ間の電圧が0.1ボルトくらいなど、とても低くなります。この状態を「飽和状態」と言います。飽和状態では、少ない電圧降下で電気を流せるので、スイッチをオンにした状態に近くなります。このため、トランジスタをスイッチのかわりに使えます。
ベース電流が、トランジスタをオンにするかオフにするかを決めますが、ベース電流を確実に流したり止めたりするには、少し考えておくべきことがあります。
今回の回路では、太陽電池の電圧はマイコンの電源電圧5Vよりも、高くなる場合があり、ときには8Vや9Vになる可能性もあります。マイコンの端子をベースにつないで、「1」または「ハイインピーダンス」でオフ、「0」でオンのつもりになっても、ベース電流が止まらなくなる場合があります。
これは、ベースの電位が5ボルトを大きく超えてしまうと、ベース電流がマイコンの保護ダイオードを通って、マイコンのVDD側に流入してしまうことによるものです。
そうなっては困るので、ベース電流を確実に止めるために、2SC1815GRを入れてあります。2SC1815GRのベース電流は、マイコンから確実に流したり止めたりできます。
PNPトランジスタではふつう、エミッタの電位はコレクタよりも高くなっています。そうしないと、逆接続状態になり、エミッタとコレクタの役割が入れ替わってしまいます。
この回路ではときたま、コレクタの電位がエミッタよりも高くなる可能性があります。例えば、以下のときです。
太陽電池の電圧が充電式電池の電圧よりも十分高いときに、放電制御SWの0をオンにすると、放電制御SWの1,2,3は、コレクタの電位がエミッタよりも高くなります。
充電が十分に行われた充電式電池がつながっている充電制御SWでは、太陽電池の電圧が低い状態で他のバンクに充電をしているときなどに、コレクタの電位がエミッタよりも高くなります。
コレクタの電位がエミッタよりもあまり大きくなると、トランジスタが壊れる可能性があります。
今回用いたトランジスタは、エミッタ・ベース間のダイオードが5Vまでの逆電圧に耐えられるようなので、壊れずに動作すると思います。
半導体素子を壊さずに、いろいろな電圧の電気を上手にやりくりする方法は、パワーエレクトロニクスの世界では大切だと思われます。勉強をすると、もっといろいろと分かってくるかもしれません。
ちなみに、パワーMOS-FETやIGBTなどの素子は、電流のオン・オフを行うゲート端子に、直流的な電流が流れないので、制御装置の消費電流を大幅に少なくできる可能性があります。今回は、部品の入手の都合や、回路を単純にしたい都合により、ベース電流をたえず消費するバイポーラトランジスタを使っています。消費電流は少し多くなりますが、なんとか実用になってほしいなあと思っています。2台め以降を作る機会があれば、MOS-FETなどの素子にもチャレンジしてみたいものです。
ベランダに太陽電池を出して、少しだけ実験をしてみました。真夏の炎天下でラジオをつけると、甲子園の高校野球が流れてきました。
無負荷状態で、太陽電池は7.94ボルトありました。
充電式電池とのやりとりを行わず、ラジオをつけると(負荷制御SWの0番だけを入れた状態)、太陽電池は7.82ボルトになりました。このとき、マイコン用電源出力は4.98ボルト、負荷出力端子の電圧は3.305ボルトでした。
充電制御SWの1番だけを入れて、試しに充電してみたところ、炎天下では220mA程度の充電電流が流れるようです。満充電までは10時間近くかかりそうです・・。
次は、充放電を制御するファームウエアを作ります。プログラムのどの部分がいつ実行されるかが天気まかせで予測しづらい上に、長時間安定して動作する必要があるので、作るのも、デバッグするのも、けっこうたいへんかもしれません。
その後、ファームウェアもとりあえずできあがり、ベランダでフィールドテストをしています。
日差しが少しだけ入る、昼の様子です。ラジオの電源は太陽電池に切り替わります。
深夜も、充電式電池から放電しながら、動きつづけます。
ちなみに、夜の写真はカメラのシャッターを15秒間も開け続けて撮りました。ノイズが少ないので、昼間のようにも見えますが、直接目で見ると、ほとんど真っ暗な中です。
無事に長く動きますように・・・。