マイコンが思ったように動かないので、電圧測定→80%の値計算ってところを省いてしまって、目標電圧を順次変更するような方法でプログラムを作り、太陽電池特性評価をしてみた。
P-VとI-V特性だが、5V前後で最大電力点を迎えているのが分かる。
1秒ごとに目標電圧を変更しながらオシロスコープの測定値を読み取りなので、誤差は大きいがまあ良いだろう。
開放電圧が6.6V程度なので、最大電力点がやはり80%程度にはあるようだ。ちなみに、屋外で開放電圧測定するともっと電圧が高いが今回は屋内で試験。寒いもんね、外。
今回の測定で気がついたが、電圧の目標値になるように制御するのはうまく言っているようだ。オシロで電圧測定すると、太陽電池の電圧がステップ的に上がっていくような挙動になっている。
なので、電圧制御のルーチンはたぶん今のままで問題ない。ちなみに、電圧は30Hzくらいで波打ってるけど、まあ良いんじゃないかとおもう。
電流、電力特性は制御の上では余り参考にならないがデータがあるので載せる。
しばらくが天気が良さそうなのですが、そちらはもう雪景色なのでしょうね。
負帰還ループを制御するときはオペアンプでも一緒ですが、
帰還動作速度 > 容量遅延×増幅度
でないと発振しますから、AD読み込みループ中にタイマーを入れると帰還動作速度を遅くしてしまうような気がしますが。
でも、制御の方はうまく動作しているということなら、あと一歩というところですね。
表示のLEDは配線がめんどくさそう?(笑)
それとも開放電圧を測るところがうまくいっていないということでしょうか?
100μFのコンデンサーに充電しているから、発電量10mA以下の時に、開放電圧まで上がらないと低い電圧で検出して誤動作するとか?
今の現象がよく見えていないので想像の域をでませんけど。(^^;)
チップ内蔵のEEP-ROMは結構いろいろと使えますね。(^^)
EEPROM書き込みに数msかかるので、状態変わっちゃうかもですけど。
実家に来ましたが、マイコンボードだけ持ってきていろいろ遊んでます。ADCの変換ですが、内部のADCユニットをリセットしてしまうと読み込みの値が最初の1回か2回程度は不安定みたい(といっても、、こいつを回避するために、ADCはずーっと変換しっぱなしのモードにしてみようかと思ってます。
タイマー割込使うと、こういうときに楽になるんですが。(^^:)
例えば、タイマー割込を1mSで設定しておいて、
割込毎に,変数MSを+1
割込1000回毎に変数SECを+1
としておいて、
メインルーチンで、MSを0にしてから5になったか判定すれば5mSが得られるし、
SECを0にしてから、10になったか判定すれば10秒が得られます。
ループの中で複数のルーチンをイベント式に判断させて動作させれば、全てのイベントが並列に処理できます。
今はもう里帰りしてるのでしょうか?
待ち時間1mSぐらいで負帰還制御は安定しているようですね。(^_^)
開放電圧が安定するまでの時間が入射光によって大幅に変化することが問題ということじゃないでしょうか。
太陽電池の特性は、光入力に対する定電流出力ですから、電圧飽和時間は入射光密度に逆比例で変動すると思いますが。