以前やっていたプロジェクト?、また引張り出して来ました。
バッテリーの放電特性を見るのには、最終放電電圧以下まで放電させると大きなダメージがあると聞いているので、自動的に最終放電電圧になったら負荷を開放するような機能が必要だな、ということで、無人?でも計測ができるように機能を追加しました。
前出の記事からの改良点は以下の部分。
- 電圧・電流・電力計側は、シリアル信号受信で開放信号を出力する機能と、動作用の電源を計測側から切り離して、計測電圧に依存しないようにした(USBシリアルからの5Vで動作するようにしました)
- 電子負荷装置側は、上記を受けて負荷を開放する機能
Log dataはUSB-シリアル通信で、パソコン側で取ることにして、簡単お手軽にやるためにYAT(Yet Another Terminal)というアプリで、負荷開放の制御までやれるようにしました。YATでは、パターンを受信したらXXする、というような簡単な制御ができます。今回は、パターンを受信したら、負荷開放用のコマンドをシリアル通信で送る、という制御です。
上の写真は、LCDを外した基板で、上からの線がUSB-シリアル通信ケーブルで、赤が5V電源(PIC kit3のICEのpin2で電源を供給)残りは、Send-Data、Recieve-Data、GNDです。基板上部のタクトスイッチは、PICのMCLRをGNDに落とすスイッチ、赤のLEDは点灯で計測中、右の緑のLEDは、今回追加した電子負荷装置への制御で、負荷ON時に点灯です。右端の茶色のケーブルで電子負荷に渡っています。
回路的には、シリアルで受信した制御信号(受信キャラクタを識別)をPICから外部に出力するレベル信号とそれのモニタ用に緑のLEDを追加しています。
PICのソフトは、v3.1となっていて、シリアル受信した制御信号をみて、該当キャラクタを受信したらレベル出力を制御する、という部分を追加しました。面倒なので、1キャラクタのみ判断で、Nで電子負荷ON、Fで電子負荷OFFとしましたが、現状動作的には、ON、OF、でも間に合うようです。(NとF以外は捨てている)
上記の写真は見た目は以前作った電子負荷装置とあまり変わりませんが、余っていたOPEampの片側を使って、負荷OFFの制御機能を追加してあります。抵抗も何本か追加してあります。
これは、YATの画面です。上記で、"Trigger Pattern"に今回は、”^1, 115"と設定します。これは、「電子負荷ONで、115xx mVになったら」、という条件となります。条件は.NETでの正規表現で書けるようです。今回は「^」(先頭からという意味)をつけてあります。(YATのTrigger Actionでは色々と細かいことができそうなのですが、マニュアルが無い状態なので、Try&Errorでやってみました。送受それぞれで設定できるようです。)
受信データの緑文字の部分は、受信時刻と、受信間隔で、YATが付与しています。(およそ200msec、秒5サンプル、という感じです)
紫文字の次の一桁目の"1"は、電子負荷制御がON("0"はOFF)を表していて、次の6桁(空白を含めて)は電圧(mV)、コンマを挟んで次の6桁は電流(mA)を表示しています。電力は、単に掛け算なので、受信側でもできるのであえて出力していません。
上記だと、電子負荷が「1」でON、電圧が12000mVから徐々に電圧が減ってきて、115xxmVになったあとで、青文字で「F」が送出され、次で先頭が「0」で、電子負荷がOFFになった、ということになります。
今回のデータは、電源装置からの電源印加なので電子負荷OFFであまり電圧が上がっていませんが、バッテリーだと負荷が開放されると電圧が上がるのではと思います。実際のでーたはまた別途取ってみます。
はい、気が付いたかもしれませんが、電圧が急に下がって、秒5サンプルでも設定電圧(上記だと11.5V代)がサンプルされないとこのシステムでは電子負荷を開放することができません、、、。ですのでこのシステムではあまり細かい条件にするとそのようなことがあるので、お気をつけください*。
最終的な回路とソフトは次で。
*:Python/Ubuntu/WSL2/Windows11でアプリを書こうと思っていたのですが、Serialが思うようにattachできなかったので、とりあえずこれで。