Home Made Garbage

E32-SolarCharger の PWM制御 ーベランダ太陽光発電所への道4ー

ホーム
電子工作
Raspberry Pi
IOT
WEB

さてこれまでソーラー充電コントローラの基本機能を学んできましたが、いよいよ発電開始!です。

実際にソーラーパネルとバッテリをつないで動かしていきましょう。

構成

ソーラーパネルと鉛蓄電池をコントローラに接続します。今回は負荷はつなげていません。

 

コントローラと蓄電池の+側の配線には3Aヒューズを挿入しています。

部品

PWM充電方式

以下のサンプルコードを使用しました。
 http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/PWM.zip

システム概要

電力モニタ INA219でバッテリの電圧と電流を観測して、スイッチング回路のスイッチングパルス幅を制御(パルス幅変調 PWM)します。

電流はINA219のIN+, IN-ピン間の抵抗0.01Ωの電圧降下で測定します。今回は負荷は接続しないので観測される電流はバッテリへのチャージ電流となります。
負荷が接続されてチャージ電流より負荷電流のほうが大きくなると観測電流は負の値となります。

サンプルコードPWM制御部

以下がサンプルコードのPWM制御部の記述です。

PWM信号はESP32のledcxxxx関数で生成します。ここではESP32のIO32ピンから周波数3kHzのスイッチング信号を出力します。パルス幅は8ビット(0-255)で指定します。

INA219でバッテリの電圧と電流を観ながらパルス幅をコントロールします。バッテリ電圧目標値は13.8V、チャージ電流 1Aとしています。

  • バッテリ電圧が14.6Vより大きいか、バッテリチャージ電流が1.5A以上であればパルス幅を10減らす。
  • バッテリ電圧が13.8Vより大きいか、バッテリチャージ電流が1.1A以上であればパルス幅を1減らす。
  • バッテリ電圧が13.0Vより小さくバッテリチャージ電流が0.5以下であればパルス幅を10増やす。
  • バッテリ電圧が13.6Vより小さくバッテリチャージ電流が0.9以下であればパルス幅を1増やす。

上記のPWM制御を施してバッテリ電圧を13.8Vにします。

動作

バッテリがほぼターゲット電圧である13.8V付近までジャージされているのでパルス幅はほぼ0に近い状態です。

ソーラーパネルを手で隠すと電圧降下してパルス幅が少し大きくなります。

チャージ時初めのころはバッテリ電圧が12V程度でしたのでスイッチングはフルオン(パルス幅Max 255)でソーラーパネルからの電圧が直接バッテリに供給されていました。

これでソーラー発電でバッテリ充電できることが確認できました。

ソーラーパネル

今回使用したソーラーパネルのSY-M12W-12の仕様は以下の通りです。

  • 最大出力電力 :12W
  • 開放電圧   :21.8V
  • 短絡電流   :0.73A
  • 最大出力時電圧:17.4V
  • 最大負荷時電流:0.69A

最大で12W出力します。最大出力が17.4Vですのでコントローラやバッテリの耐圧はこれ以上にする必要があります。

最大電流値をもとにヒューズやPWM制御時のしきい値も考慮が必要です。

参考

バッテリ

今回は定格容量 12Ah(12V)の完全密封型鉛蓄電池 WP12-12を使用しました。仕様は以下の通りです。

  • 定格容量:12V 12Ah
  • 充電電圧:14.4~15.0V(サイクルユース)、13.5~13.8V(スタンバイユース)

サイクルユースとは普通の充電池のように満充電状態から放電をして一定まで放電後に再充電をくり返す使用で、
スタンバイユースとは常に充電しておいて停電などの非常時に使用する方法です。

WP12-12の寿命はデータシート上は以下のとおりです。

サイクルユース

  • 100% 放電 250 cycles
  • 80% 放電 350 cycles
  • 50% 放電 550 cycles
     

スタンバイユース

  •  3~5年
     

バッテリ寿命は外気温などでも変わるようですし、スタンバイユースは非常時の放電量によっても寿命が変わりそうですね。

今回のベランダ発電では日照時はバッテリチャージしつつソーラーからの電気を使用し、無日照時はバッテリの電気を使用するのでスタンバイユースになります。

無日照時の放電量もケアする必要ありそうです。

参考

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください