naoki86star

インターネットの片隅でなにかしら書いてみる

LTC4150クーロンカウンター試してみた

 amazonでラズベリーパイとかPICとかで使えそうな機能デバイスをサーフしていてクーロンカウンターというのを見かけた。ANALOG DEVICESというメーカのLTC4150というICを使っているようで、電流計に近いことができると想像した。
 1つ注文してみて、三週間くらいかかるパターンかと思っていたら、数日で届いた。他に注文返品あってAmazonジャパンに在庫にでもなっていたか。

 届いた品物には添付ドキュメントもあるいはそれへのリンク記載もまったくない。DIP化された基盤みて、インタフェースは(自分にとって慣れてきている)I2Cとかではないようだ。ANALOG DEVICESでのICの説明にアプリケーション例回路図が載ってる。web検索していたら基盤の色の違うがその他基盤パターン含めて外見がこれと同じことに気が付いた。主な違いは、基盤上のジャンパーにJP1てのあるのがsparkfunのはクローズで出荷(デフォルト)とあるが、オープンになっていたこと。
 同じものではないのかもしれないが、結果としては、これ読んだおかげで手に入れたクーロンカウンタを動かしてみることができた。これは、これを読まないと動かせなかったと思う。ラズベリーパイのGPIO端子(w/ RPi.GPIO.add_event_detect)につないで動かすことできた。このクーロンカウンタ基盤のピン並びが直交というか縦方向横方法両方あってブレッドボードで扱いにくい。
ー 測定対象をつなげる端子が3か所あってINが2か所片方はオプションというか端子形状を変えて2つということだったらしい。
ー クーロンの測定はINTと書かれたピンに出力されるパルスを数えるというもの。上記の本家?サイトにある定数が分からないと定量が算出できない。キャリブレーションで自分で定数を決めるということが必要だし、そうすればよいともいえる。けれどもLED一個程度でテストしても(電流が小さくて)パルスの間隔が結構長い。

 理屈の上では一例充電器につなぎこんでにどれくらい充電が進んだはずかを知ることができそう。充電量を決め打ちする簡易充電リミッターとかが作れるか。仮にラスベリーパイの5V端子から(充電口用に)500mAとかとれるのなら、HATぽくひとつ組み込んでみてもいいかな思ったがそうもいかない。別電源にしてまでは作ろうとは思わなかった。

 覚えたてのPIC*1で使えるかどうかを試してみた。PIC12F1822って小柄な子で動かしてみる。
 データシートによるとINTパルスの幅は1usecとのこと*2で検出は単純に入力有無の判定で動作した。8MHzで動作させてみてる。PICの動作スピードとパルス幅を比べてみて1MHzだと取りこぼしが起きそうな感じだが、実際やってみると取りこぼしていそうな様子だった。RA5にはLEDをつないでる。

    while(1) {
        if(PORTAbits.RA2==0){
            LATAbits.LATA5 = ~LATAbits.LATA5;
            counter++;
            if(counter>TARGET_INTs_COUNTER){
                LATAbits.LATA5 = 1;
                break;
            }
        }
    }

 判定文の中ではRA2(クーロンカウンタ基盤のINTピンをつないだピン)が立つまで待つともっといいのか。

 POLという端子を監視すると電流の流れている方向が識別できるとのこと。これがわかるとバッテリー、充電器、負荷をつないでおいて積算でバッテリー残量を知ることができるはず。これをするなら先にバッテリに流れ込んだ分の電流が実際に蓄電される効率についての予備知識を持っておきたい、そう思った。

*1:snapd+MPLAB X IDEだけで頑張る初心者

*2:パスコン?条件付きで