目次

ソーラーパネル発電量測定

 IchigoJamを使い、ソーラーパネルの瞬間発電量を
 表示してみます。



 ソーラーパネルの出力にダイオードを入れて、抵抗に
 接続します。電流を一方向に流すために、ダイオード
 を使います。

 下側の抵抗に発生する電圧を測定し、ソーラーパネルの
 出力電圧に換算します。また、測定電圧から流れる電流
 を計算します。電力は、電圧と電流の積になるので瞬間
 発電量を求められます。

 入力電圧Vinは、分圧電圧の3倍になるのでVin=3V。
 ソーラーパネルの電圧は、Vout=Vin+0.6=3V+0.6。
 電流は、I=V/R。

 測定は2秒ごとにするとして、外部から次のような
 トリガーを入力します。



 レベルが'1'から'0'あるいは'0'からに'1'に変化する
 ことを捉えるには、シフトレジスタを利用します。

 シフトレジスタで信号変化を捉えるのは、次のように書きます。

100 ' trigger sampling
110 LET D,0
120 LET [1],IN(1)
130 IF [0]=1 AND [1]=0 LET D,1
140 LET [0],[1]
150 IF D=1 GOSUB 200
160 RETURN

 配列[0]、[1]に論理値の'1'を入れておき、サブルーチンを
 呼び出します。サブルーチンでは、現在の論理値を入力し
 ひとつ前の論理値の組合せで、仕事をさせるのか、無視する
 のかを決めます。判断が終わったなら、次回の判断に使える
 ように、現在の論理値を保存します。

 仕事をさせるなら、専用サブルーチンを呼出します。

 専用サブルーチンでは電圧相当数値入力、入力電圧と
 電流に換算します。

 ソーラーパネルの発生電圧にした後、電圧と電流の積
 を求め表示します。電圧と電流の積が電力です。

200 ' measure , calculate and show
210 LET A,ANA(2)
220 LET V,(A*33)/1024
230 LET U,(30*V+6)
240 LET I,V/R
250 LET P,(U*I/10)
260 ? P,"W"
270 RETURN

 変数は、整数だけしかないので、10倍、100倍した
 値を計算して、最後に10か100で割って調整します。

 トリガーを検出してからの動作は、次のようにすればよいでしょう。



 初期化をサブルーチンとし、繰返しを前に付加して完成。

10 ' solar power measure
20 GOSUB 300 : ' initialize
30 GOSUB 100 : ' get trigger and measure
40 IF BTN() GOTO 60
50 GOTO 30
60 ? "exit"
70 END
100 ' trigger sampling
110 LET D,0
120 LET [1],IN(1)
130 IF [0]=1 AND [1]=0 LET D,1
140 LET [0],[1]
150 IF D=1 GOSUB 200
160 RETURN
200 ' measure , calculate and show
210 LET A,ANA(2)
220 LET V,(A*33)/1024
230 LET U,(30*V+6)
240 LET I,V/R
250 LET P,(U*I/10)
260 ? P,"W"
270 RETURN
300 ' initialize
310 LET [0],1,1
320 LET R,10000
330 RETURN

 ラベル利用で、次のように書き換えられます。

10 ' solar power measure
20 GSB @INIT
30 @LOOP
40 GSB @CON
50 IF BTN() GOTO @EXIT
60 GOTO @LOOP
70 @EXIT
80 ? "exit"
90 END
100 @CON
110 LET D,0
120 LET [1],IN(1)
130 IF [0]=1 AND [1]=0 LET D,1
140 LET [0],[1]
150 IF D=1 GSB @SHOW
160 RTN
200 @SHOW
210 LET A,ANA(2)
220 LET V,(A*33)/1024
230 LET U,(30*V+6)
240 LET I,V/R
250 LET P,(U*I/10)
260 ? P,"W"
270 RTN
300 @INIT
310 LET [0],1,1
320 LET R,10000
330 RTN

 システムとしては、次のようになっています。




目次

inserted by FC2 system