2016年3月19日土曜日

太陽光パネルの余剰電力を有効利用する

晴れた日に太陽光パネルとバッテリーを繋ぎっぱなしにすると、過充電によってバッテリーから水素が発生し、バッテリーの寿命が短くなりますし、電力を有効利用できていません。

バッテリーから排出されるガスの量を見るために設置したペットボトルが、晴れた日は水素と酸素の混合ガスで満たされて浮きます。

一方、使用電力量の多い器具に繋いだままにすると、過放電によってバッテリーの寿命が短くなります。

この問題を解決するために、バッテリーが満充電になったら電力使用利用の多い器具を動かし、電圧が下がったら器具の動作を停止する装置を作りました。


今回はこの装置の作り方を説明します。

使用したもの

ソーラーチャージコントローラ

LANケーブルかモジュラーケーブルで接続して、情報を取得できるチャージコントローラです。
MPPTチャージコントローラー Tracer-2210RN

インバーター(COTEK SK1500-124)

モジュラーケーブルで接続して、制御可能なインバーターです。
COTEK(コーテック) 正弦波インバーター 出力1500W/24V 周波数50/60Hz 歪み率3%以下 SKシリーズ SK1500-124

電気温水器

余剰電力を利用するためにヤフオクで購入しました。
新品はこちら: LIXIL(リクシル) INAX ゆプラス 洗髪用・ミニキッチン用 スタンダードタイプ EHPN-H25N2

フレキ管や混合蛇口を利用して設置しました。
スーパー フレキ管ツバ出し工具(ギアレンチ式) TH1320G
スーパー ステンレスフレキ管専用カッター TC105NF
TOTO 浴室用 壁付サーモスタットシャワー金具 スパウト長170mm TMGG40E
SK11 シールテープ 15M巻 13mm幅×0.1mm厚 SST-1315
SK11 スーパーワイドモンキーレンチ 最大口幅 38mm SWM-38S
分岐継ぎ手
ステンレス巻フレキパイプ
フレキ用ゴムパッキン
フレキ用袋ナット

Arduino

小さく収めたかったので、今回はArduinoNANOを使いました。
Arduino Nano

到着に1週間以上かかりましたが、今回は5個セットで安い互換機を使ってみました。
5Pcs ATmega328P Nano V3 Controller Board Compatible Arduino Improved Version

ArduinoNANOとPCの接続には、USBminiBケーブルが必要です。

ちなみに、Arduinoの消費電力を少しでも減らしたい場合は、電源が入った時に点灯するLEDか、それの抵抗を外すとLED分のエネルギーを節約できます。

ブレッドボード

パーツを組み合わせます。
ブレッドボード

ピンソケット

部品にジャンパワイヤをさせるようにする土台です。
あると便利です。
分割ロングピンソケット(細ピン用) 1x40 (40P)

ジャンパワイヤ

ブレッドボードに付けた部品同士を繋げたり、ブレッドボードと外部の部品を繋げたりします。
ブレッドボード・ジャンパーワイヤ

リレー

許容電流量が大きめのリレーを選びました。
コードはノーマリーオープンにハンダ付けし、信号側はピンソケットを付けしました。
大電流大型リレーモジュールキット

延長コード

切断して、リレーのノーマリーオープンにハンダ付けしました。

4芯モジュラーケーブル 2本

最低4芯必要です。
2芯はダメですが、6芯は大丈夫です。
チャージコントローラはLANケーブルでも良いです。

モジュラージャックDIP化キット 2個

先ほど用意したケーブルをブレットボードに繋ぎます。
6極6芯モジュラージャックDIP化キット

チャージコントローラにLANケーブルを利用する場合は、LANのDIP化キットが必要です。
LANコネクタDIP化キット

3.3V500mAスーバー三端子レギュレーター

モジュラーケーブルから取れる12VをArduinoのために3.3Vに変換します。
3.3Vを使うとArduinoの消費電力量を減らせるらしいので、5Vではなく3.3Vを選択しています。
スーパー3端子レギュレータ 3.3V500mA R-78E3.3-0.5

RS232レベル変換基板

インバータとの通信に使います。
3V・3.3V・5V系-RS232レベル変換基板

接続方法

チャージコントローラ

チャージコントローラ EP Solar Tracerシリーズのケーブルにおけるピンの役割は、それぞれのこうなっています。
Pin Number Role
1 +12V
2 GND
3 +12V
4 GND
5 TXD(3.3V)
6 RXD(3.3V)
7 GND
8 GND

Arduinoにはこのように接続します。
+12v -> 3.3v レギュレーター -> Arduino 3.3v
GND -> Arduino GND
TXD -> Arduino D10 (SoftwareSerial RX)
RXD -> Arduino D11 (SoftwareSerial TX)

インバーター

インバータのケーブルにおけるピンの役割は、それぞれこうなっています。
Pin Number Role
1 Not used
2 GND
3 RXD
4 TXD
5 Remote Control 
6 VCC

Arduinoにはこのように接続します。
TXD -> RS232 レベル変換 -> Arduino D8 (SoftwareSerial RX)
RXD -> RS232 レベル変換 -> Arduino D9 (SoftwareSerial TX)
GND -> Arduino GND

自分のブレッドボードでは、こういう配線になりました。

リレー

信号端子はこのように接続します。
VCC -> チャージコントローラのケーブルから取れる12V
SIG -> Arduino D14
GND -> Arduino GND

ArduinoのD14がONになると、リレーが動作します。

電源コードは下記のように接続します。
オス -> インバーター
メス -> 電気温水器

Arduinoのプログラム

メインプログラム

#include <SoftwareSerial.h>
#include "TracerSolarChargeController.h"
#include "CotekInverter.h"

int RELAY_PIN = 12;
int LED_PIN = 13;

CotekInverter inverter(8, 9); // RX, TX
TracerSolarChargeController charge_controller(10, 11); // RX, TX

int i;

void setup() {
  //Serial.begin(57600);
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);

  // init status
  digitalWrite(RELAY_PIN, LOW);
  digitalWrite(LED_PIN, LOW);
  inverter.power_off();
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  charge_controller.update();
  digitalWrite(LED_PIN, LOW);

  //charge_controller.serial_out(&Serial);
  if ( charge_controller.battery > 26.4 ) {
    digitalWrite(RELAY_PIN, HIGH);
    inverter.power_on();
  } else if ( charge_controller.battery < 24.8 ) {
    digitalWrite(RELAY_PIN, LOW);
    inverter.power_off();
  }


  delay(5000);
}
5秒に1回チャージコントローラからバッテリーの電圧を取得しています。
電圧が26.4Vを超えたら、リレーとインバータをONにし、電圧が24.8Vを下回ったらリレーとインバータをOFFにするようにしています。

チャージコントローラの出力をArduinoのシリアル通信で確認したい場合は、下記のコメントアウトを外してください。
Serial.begin(57600);
charge_controller.serial_out(&Serial);

ライブラリ

下記ライブラリのzipファイルをダウンロード・解凍して、Arduinoのlibrariesフォルダに置いてください。

TracerSolarChargeController

チャージコントローラから情報を取得するプログラムは、既に作られている方がいらっしゃったので、それを参考に再構成しました。

zipファイル: TracerSolarChargeController-1.0.2.zip
github: asukiaaa/TracerSolarChargeController

CotekInverter

COTEKのSシリーズSPシリーズの説明書を元に、電源のON OFFができるコントローラを作成しました。

zipファイル: CotekInverter-1.0.1.zip
github: asukiaaa/CotekInverter

動作確認

全ての装置を接続します。
チャージコントローラのケーブルを接続すると、Arduinoの電源が入るはずです。

電気温水器とインバーターの電源を入れます。

Arduinoのリセットボタンを押します。

Arduinoから信号が送られて、インバーターがoffになります。

Arduinoの取得した電圧が上限値(26.4V)を超えると、インバーターとリレーがonになります。

Arduinoの取得した電圧が下限値(24.8V)を下回ると、インバーターとリレーがoffになります。

電圧計で取れる電圧と0.数Vの不一致はありますが、期待通り動作してくれているようです。

以上です。
面白がってもらえたり、何かの参考になれば幸いです。

参考

Communication Interface for Tracer MT-5
Use Arduino to Communicate with Tracer MT5 Charge Controller
S1500_Manual_Aug2009.pdf
sp-series-manual.pdf

0 件のコメント :