気ままにIoTメモ

Iotに関わること関わらないこと備忘録

I2C制御16bit ADC MCP3425(3)

前回に引き続き、ゲイン設定を自由にしてくれるプログラムを書いたのでメモ。

var Adc = require('./adc');

adc = new Adc({gain:1, accuracy:16});


adc.start();

var Vmax = [
    2.048,
    1.024,
    0.512,
    0.256
]

var gain = 8;

adc.on('complete', function(v){
    var idx = Math.log2(gain);

    if(gain > 1 && Vmax[idx] * 0.95 < Math.abs(v)) {
        gain /= 2;
    } else if(gain < 8 && Vmax[idx+1] * 0.95 > Math.abs(v)) {
        gain *= 2;
    } else {
        // 適切なゲインの測定結果
        console.log('gain:' + gain + '    ' + v);
    }

    adc.updateConfig({gain:gain});
    adc.start();
});

console.logの行ではゲインが適切に変えられた値を得ることが出来ます。

iot_lab/app.js at master · hsgwa/iot_lab · GitHub