![]()
今回はPSoC Expressを利用して太陽電池用のバッテリー充電器のプロジェクトを作る。実は実際にPSoCに書き込んで動作確認した訳ではない。またMTTPには対応していないなど欠点もある。そのうち組み立てようと考えつつ作ったものだ。
![]()
今回の充電器は太陽電池とバッテリーとをDCスイッチ(FETスイッチ)を介して接続しする。そしてバッテリー電圧をチェックしつつ電圧に応じてDCスイッチにより充電・非充電を切り替える。
バッテリー電圧監視用の直流電圧入力をプロジェクトに追加する。画面左下の「INPUT」から「Input Driver Catalog」を開き、「Voltage Input」の「DC」にある「0.00 to 31.00V」を追加する。名前は「Battery」にした。
![]()
次に太陽電池とバッテリーの間に配置するDCスイッチを追加する。画面左下の「OUTPUT」から「Output Driver Catalog」を開き、「Digital Output」の「Digital Output」にある「DC Switch」から「48V,10A High Side」を選択する。名前は「SW_Solar_to_Battry」とした。
![]()
さらにバッテリーから電力を取り出す側用のDCスイッチを配置する。バッテリーに接続した機器の消費電力により過放電になってしまうのを防ぐためだ。
画面左下の「OUTPUT」から「Output Driver Catalog」を開き、「Digital Output」の「Digital Output」にある「DC Switch」から「48V,10A High Side」を選択する。名前は「SW_Battery_to_Load」とした。
![]()
わざわざPSoCのポートを使って制御する必要もないのだが、LEDも配置することにした。充電中だけ光るLEDを追加する。「OUTPUT」から「On/Off」のLEDを追加する。名前は「LED_Charge」とした。
![]()
同様にバッテリーから電力を取り出せる場合だけ光るLEDを追加する。名前は「LED_Battery」とした。
![]()
これで入出力のデバイスが追加された。次にバッテリー電圧に応じた処理を追加するため画面左下にある「VALUATOR」をクリックする。
![]()
バッテリーの電圧に応じた処理をするため「SetPointRegion」を選択する。
![]()
バッテリー電圧に応じた処理をするため入力は「Battery」を選択する。
![]()
「SetPointRegion」の設定画面が開いた。「AddSetPoint」ボタンを押して閾い電圧を設定する。
![]()
低電圧側の設定をする「Threshold」を「10」、「Hysterisis」を「0.5」にする。
![]()
同様に中電圧側と高電圧側の閾地を設定する。ここではそれぞれ13Vと14.2Vとした。
![]()
これで「Battery」と「Valuator1」がオレンジ色の線で結ばれた。今回はさらに充電状態と非充電状態の状態遷移を設定するため、もうひとつ「VALUATOR」を追加する。
![]()
今度は状態遷移を設定するため「StateMachine」を選ぶ。
![]()
まずは充電状態を設定する。「Add State」ボタンをクリックする。
![]()
これで充電状態を示す「Charge」が追加された。同様に非充電状態を追加するため「Add State」ボタンから「ChargeEnd」を追加する。
![]()
これで充電状態「Charge」と非充電状態「ChargeEnd」の2つの状態が追加された。次に状態遷移を設定するため「Charge」をダブルクリックする。
![]()
「Expression」を「Valuator1 < 3」とする。これで「Valuator1 < 3」の間はずっと充電状態になり続ける。「Valuator1 < 3」というのは「バッテリー電圧が14.2V未満」ということになる。つまり「バッテリー電圧が14.2V未満のときは充電状態を維持する」という意味になる。
![]()
今回は「Expression」を「Valuator1 >= 3」にし、「Charge」から「ChargeEnd」に設定する。これは「バッテリー電圧が14.2V以上になったら非充電状態に移行」という意味になる。
![]()
次に「ChargeEnd」をダブルクリックして非充電状態からの状態遷移を設定する。
![]()
そして「Expression」を「Valuator1 < 2」にし、「Charge」へ遷移するように設定する。これは「バッテリー電圧が13V以下のときに充電状態に移行」という意味になる。
![]()
「Expression」を「Valuator1 >= 2」にする。これは「バッテリー電圧が13V以上のときは非充電状態を保つ」という意味になる。
![]()
この設定により、バッテリー電圧が13V以下になると充電が始まり、14.2Vになると充電が終わるという動作になる。
![]()
次に設定した状態通りにDCスイッチが動作するように設定する。DCスイッチを右クリックして現れたメニューから「Transfer Function」を選択する。
![]()
そしてドラッグ・アンド・ドロップで「Charge」のときにDCスイッチが「ON」、「ChargeEnd」のときに「OFF」になるように設定する。
![]()
入力元では「Valuator1」を利用する。先ほどの「Valuator2 state」とは異なる入力を使うことに注意!
![]()
これで各モジュール間がオレンジ色の線で結ばれ、モジュール関係の設定が終わった。次にシュミレーションで動作を確認する。
![]()
「Battery」の左側にあるバーを上下に動かしてDCスイッチやLEDの変化を確認する。
![]()
今回の回路図はこのようになる。とは言うもののまったく同じように作る必要はない。適宜変更するといいだろう。特に重要なのがQ2かな?低ON抵抗のMOS FETを利用するといいだろう。







